|
|
|
@ -133,15 +133,8 @@ static bool ptrcmp(void *a, void *b) |
|
|
|
return a == b; |
|
|
|
} |
|
|
|
|
|
|
|
void *vlc_malloc(vlc_object_t *obj, size_t size) |
|
|
|
{ |
|
|
|
void *ptr = vlc_objres_new(size, dummy_release); |
|
|
|
if (likely(ptr != NULL)) |
|
|
|
vlc_objres_push(obj, ptr); |
|
|
|
return ptr; |
|
|
|
} |
|
|
|
|
|
|
|
void *vlc_calloc(vlc_object_t *obj, size_t nmemb, size_t size) |
|
|
|
static void *vlc_obj_alloc_common(vlc_object_t *obj, size_t nmemb, size_t size, |
|
|
|
bool do_memset) |
|
|
|
{ |
|
|
|
size_t tabsize = nmemb * size; |
|
|
|
|
|
|
|
@ -154,13 +147,24 @@ void *vlc_calloc(vlc_object_t *obj, size_t nmemb, size_t size) |
|
|
|
void *ptr = vlc_objres_new(tabsize, dummy_release); |
|
|
|
if (likely(ptr != NULL)) |
|
|
|
{ |
|
|
|
memset(ptr, 0, tabsize); |
|
|
|
if (do_memset) |
|
|
|
memset(ptr, 0, tabsize); |
|
|
|
vlc_objres_push(obj, ptr); |
|
|
|
} |
|
|
|
return ptr; |
|
|
|
} |
|
|
|
|
|
|
|
void vlc_free(vlc_object_t *obj, void *ptr) |
|
|
|
void *vlc_obj_alloc(vlc_object_t *obj, size_t nmemb, size_t size) |
|
|
|
{ |
|
|
|
return vlc_obj_alloc_common(obj, nmemb, size, false); |
|
|
|
} |
|
|
|
|
|
|
|
void *vlc_obj_calloc(vlc_object_t *obj, size_t nmemb, size_t size) |
|
|
|
{ |
|
|
|
return vlc_obj_alloc_common(obj, nmemb, size, true); |
|
|
|
} |
|
|
|
|
|
|
|
void vlc_obj_free(vlc_object_t *obj, void *ptr) |
|
|
|
{ |
|
|
|
vlc_objres_remove(obj, ptr, ptrcmp); |
|
|
|
} |
|
|
|
|