VLC
3.0.15
|
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().