From ff3867c05242f86bf000720058e22046abe1c8d3 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 3 May 2012 13:26:24 -0400 Subject: [PATCH] core: Increase type safety of some local alloc functions --- src/libotutil/ot-local-alloc.c | 19 ++++++++++++------- src/libotutil/ot-local-alloc.h | 6 +++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/libotutil/ot-local-alloc.c b/src/libotutil/ot-local-alloc.c index ab62e0d8..cf1dba32 100644 --- a/src/libotutil/ot-local-alloc.c +++ b/src/libotutil/ot-local-alloc.c @@ -45,23 +45,28 @@ ot_local_free (void *loc) void ot_local_obj_unref (void *loc) { - _ot_local_free(GObject, g_object_unref); + GObject **location = (GObject**)loc; + if (location && *location) + g_object_unref (*location); } void -ot_local_variant_unref (void *loc) +ot_local_variant_unref (GVariant **loc) { - _ot_local_free(GVariant, g_variant_unref); + if (loc && *loc) + g_variant_unref (*loc); } void -ot_local_ptrarray_unref (void *loc) +ot_local_ptrarray_unref (GPtrArray **loc) { - _ot_local_free(GPtrArray, g_ptr_array_unref); + if (loc && *loc) + g_ptr_array_unref (*loc); } void -ot_local_hashtable_unref (void *loc) +ot_local_hashtable_unref (GHashTable **loc) { - _ot_local_free(GHashTable, g_hash_table_unref); + if (loc && *loc) + g_hash_table_unref (*loc); } diff --git a/src/libotutil/ot-local-alloc.h b/src/libotutil/ot-local-alloc.h index 2aeea757..3cbfc528 100644 --- a/src/libotutil/ot-local-alloc.h +++ b/src/libotutil/ot-local-alloc.h @@ -29,9 +29,9 @@ G_BEGIN_DECLS void ot_local_free (void *loc); void ot_local_obj_unref (void *loc); -void ot_local_variant_unref (void *loc); -void ot_local_ptrarray_unref (void *loc); -void ot_local_hashtable_unref (void *loc); +void ot_local_variant_unref (GVariant **loc); +void ot_local_ptrarray_unref (GPtrArray **loc); +void ot_local_hashtable_unref (GHashTable **loc); #define ot_lfree __attribute__ ((cleanup(ot_local_free))) #define ot_lobj __attribute__ ((cleanup(ot_local_obj_unref)))