From 63d1ebca3a6e1ec51f7f31ab9b77af0fb7e7f857 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 24 Feb 2017 02:05:16 +0000 Subject: [PATCH] ralloc: Delete autofree handling. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Marek Olšák Reviewed-by: Lionel Landwerlin --- src/util/ralloc.c | 18 ------------------ src/util/ralloc.h | 9 --------- 2 files changed, 27 deletions(-) diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 980e4e4f138..d5cc16766b1 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -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 *)) { diff --git a/src/util/ralloc.h b/src/util/ralloc.h index 3e2d342b45e..7d906519661 100644 --- a/src/util/ralloc.h +++ b/src/util/ralloc.h @@ -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 *)); -- 2.11.0