This group provides a generic container.  
More...
|  | 
| struct | _Eina_Trash | 
|  | The structure type for a generic container of an unused allocated pointer.  More... 
 | 
|  | 
This group provides a generic container. 
◆ EINA_TRASH_CLEAN
      
        
          | #define EINA_TRASH_CLEAN | ( |  | trash, | 
        
          |  |  |  | data | 
        
          |  | ) |  | while ((data = eina_trash_pop(trash))) | 
      
 
Definition for a macro to remove all the pointers from the trash. 
This macro allows the cleaning of trash in an easy way. It removes all the pointers from trash until it's empty.
- Parameters
- 
  
    | [in,out] | trash | The trash to clean |  | [out] | data | The pointer extracted from the trash |  
 
- Note
- This macro can be used for freeing the data in the trash, like in the following example:
char *data;
 
 
  free(data);
#define EINA_TRASH_CLEAN(trash, data)
Definition for a macro to remove all the pointers from the trash.
Definition: eina_trash.h:111
The structure type for a generic container of an unused allocated pointer.
Definition: eina_trash.h:41
 - Note
- This macro is useful when you implement some memory pool. 
 
 
◆ eina_trash_init()
  
  | 
        
          | static void eina_trash_init | ( | Eina_Trash ** | trash | ) |  |  | inlinestatic | 
 
Initializes a trash before using it. 
This function just set to zero the trash to correctly initialize it.
- Parameters
- 
  
  
- Note
- You can just set *trash to NULLand you will have the same result.
 
 
◆ eina_trash_push()
  
  | 
        
          | static void eina_trash_push | ( | Eina_Trash ** | trash, |  
          |  |  | void * | data |  
          |  | ) |  |  |  | inlinestatic | 
 
Pushes an unused pointer in the trash instead of freeing it. 
Instead of freeing a pointer and put pressure on malloc/free you can push it in a trash for a later use. This function just provide a fast way to push a now unused pointer into a trash.
- Parameters
- 
  
    | [in,out] | trash | A pointer to an Eina_Trash |  | [in] | data | An unused pointer big enough to put a (void*) |  
 
- Note
- Do not use the pointer after insertion or bad things will happens.
- 
This trash will not resize, nor do anything with the size of the region pointed by data, so it's your duty to manage the size.
Referenced by eina_quadtree_del(), eina_rectangle_free(), eina_rectangle_pool_release(), and eina_safepointer_unregister().
 
 
◆ eina_trash_pop()
  
  | 
        
          | static void* eina_trash_pop | ( | Eina_Trash ** | trash | ) |  |  | inlinestatic |