ralloc: Delete autofree handling.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 24 Feb 2017 02:05:16 +0000 (02:05 +0000)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 27 Feb 2017 23:46:12 +0000 (15:46 -0800)
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>
src/util/ralloc.c
src/util/ralloc.h

index 980e4e4..d5cc167 100644 (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 *))
 {
index 3e2d342..7d90651 100644 (file)
@@ -247,15 +247,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.
  */
 void ralloc_set_destructor(const void *ptr, void(*destructor)(void *));