ralloc: Delete autofree handling.

There was exactly one user of this, and I just removed it.

It also accessed an implicit global context, with no locking.  This
meant that it was only safe if all callers of ralloc_autofree_context()
held the same lock...which is a pretty terrible thing for a utility
library to impose.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
Kenneth Graunke 2017-02-24 02:05:16 +00:00
parent aa8bb9fc15
commit 63d1ebca3a
2 changed files with 0 additions and 27 deletions

View file

@ -323,24 +323,6 @@ ralloc_parent(const void *ptr)
return info->parent ? PTR_FROM_HEADER(info->parent) : NULL;
}
static void *autofree_context = NULL;
static void
autofree(void)
{
ralloc_free(autofree_context);
}
void *
ralloc_autofree_context(void)
{
if (unlikely(autofree_context == NULL)) {
autofree_context = ralloc_context(NULL);
atexit(autofree);
}
return autofree_context;
}
void
ralloc_set_destructor(const void *ptr, void(*destructor)(void *))
{

View file

@ -246,15 +246,6 @@ void ralloc_adopt(const void *new_ctx, void *old_ctx);
*/
void *ralloc_parent(const void *ptr);
/**
* Return a context whose memory will be automatically freed at program exit.
*
* The first call to this function creates a context and registers a handler
* to free it using \c atexit. This may cause trouble if used in a library
* loaded with \c dlopen.
*/
void *ralloc_autofree_context(void);
/**
* Set a callback to occur just before an object is freed.
*/