From: Alan T. DeKok Date: Tue, 19 Feb 2013 14:42:00 +0000 (-0500) Subject: Use destructor X-Git-Tag: release_3_0_0_beta1~1004 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55462c5d25df2f3e36f2947c1ece35630de9b5e6;p=thirdparty%2Ffreeradius-server.git Use destructor --- diff --git a/src/main/modules.c b/src/main/modules.c index 9ca7efa010c..cbe351dfdc7 100644 --- a/src/main/modules.c +++ b/src/main/modules.c @@ -345,12 +345,14 @@ void virtual_servers_free(time_t when) } } -static void indexed_modcallable_free(void *data) +static int indexed_modcallable_free(void *ctx) { - indexed_modcallable *c = data; + indexed_modcallable *this; - modcallable_free(&c->modulelist); - talloc_free(c); + this = talloc_get_type_abort(ctx, indexed_modcallable); + + modcallable_free(&this->modulelist); + return 0; } static int indexed_modcallable_cmp(const void *one, const void *two) @@ -757,6 +759,8 @@ static indexed_modcallable *new_sublist(CONF_SECTION *cs, return NULL; } + talloc_set_destructor((void *) c, indexed_modcallable_free); + return c; } @@ -1058,8 +1062,7 @@ static int load_byserver(CONF_SECTION *cs) cf_log_info(cs, " modules {"); - components = rbtree_create(indexed_modcallable_cmp, - indexed_modcallable_free, 0); + components = rbtree_create(indexed_modcallable_cmp, NULL, 0); if (!components) { radlog(L_ERR, "Failed to initialize components\n"); goto error;