| VLC
    3.0.18
    | 

| Data Structures | |
| struct | vlc_res | 
| Functions | |
| static struct vlc_res ** | vlc_obj_res (vlc_object_t *obj) | 
| void * | vlc_objres_new (size_t size, void(*release)(void *)) | 
| Allocates an object resource.  More... | |
| void | vlc_objres_push (vlc_object_t *obj, void *data) | 
| Pushes an object resource on the object resources stack.  More... | |
| static void * | vlc_objres_pop (vlc_object_t *obj) | 
| void | vlc_objres_clear (vlc_object_t *obj) | 
| Releases all resources of an object.  More... | |
| void | vlc_objres_remove (vlc_object_t *obj, void *data, bool(*match)(void *, void *)) | 
| Releases one object resource explicitly.  More... | |
| static void | dummy_release (void *data) | 
| static bool | ptrcmp (void *a, void *b) | 
| void * | vlc_obj_malloc (vlc_object_t *obj, size_t size) | 
| static void * | vlc_obj_alloc_common (vlc_object_t *obj, size_t nmemb, size_t size, bool do_memset) | 
| void * | vlc_obj_calloc (vlc_object_t *obj, size_t nmemb, size_t size) | 
| void | vlc_obj_free (vlc_object_t *obj, void *ptr) | 
| 
 | static | 
Referenced by vlc_obj_alloc_common(), and vlc_obj_malloc().
| 
 | static | 
Referenced by vlc_obj_free().
| 
 | static | 
References dummy_release(), likely, mul_overflow, vlc_objres_new(), and vlc_objres_push().
Referenced by vlc_obj_calloc().
| 
 | static | 
References vlc_internals.
Referenced by vlc_objres_pop(), vlc_objres_push(), and vlc_objres_remove().
| void vlc_objres_clear | ( | vlc_object_t * | obj | ) | 
Releases all resources of an object.
All resources added with vlc_objres_add() are released in reverse order. The resource list is reset to empty.
| obj | object whose resources to release | 
References container_of, vlc_res::payload, vlc_res::release, and vlc_objres_pop().
Referenced by module_load(), and vlc_module_unload().
| void* vlc_objres_new | ( | size_t | size, | 
| void(*)(void *) | release | ||
| ) | 
Allocates an object resource.
| size | storage size in bytes of the resource data | 
| release | callback to release the resource | 
References add_overflow, and unlikely.
Referenced by vlc_obj_alloc_common(), and vlc_obj_malloc().
| 
 | static | 
References vlc_res::payload, vlc_res::prev, and vlc_obj_res().
Referenced by vlc_objres_clear().
| void vlc_objres_push | ( | vlc_object_t * | obj, | 
| void * | data | ||
| ) | 
Pushes an object resource on the object resources stack.
| obj | object to allocate the resource for | 
| data | resource base address (as returned by vlc_objres_new()) | 
References container_of, vlc_res::payload, vlc_res::prev, and vlc_obj_res().
Referenced by vlc_obj_alloc_common(), and vlc_obj_malloc().
| void vlc_objres_remove | ( | vlc_object_t * | obj, | 
| void * | data, | ||
| bool(*)(void *, void *) | match | ||
| ) | 
Releases one object resource explicitly.
If a resource associated with an object needs to be released explicitly earlier than normal, call this function. This is relatively slow and should be avoided.
| obj | object whose resource to release | 
| data | private data for the comparison function | 
| match | comparison function to match the targeted resource | 
References vlc_res::payload, vlc_res::prev, vlc_res::release, and vlc_obj_res().
Referenced by vlc_obj_free().
 1.8.16
 1.8.16