From c91c9e5eeae06a7cbed94354d62c1281dc356407 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Wed, 30 Aug 2023 17:26:56 -0700 Subject: modules/*: til_module_context_free() error paths Several modules still had vestigial ad-hoc free() cleanups on error paths in their create_context(). Largely mechanical change of replacing those with til_module_context_free() which is more appropriate, since the til_module_context_t holds a reference on the setup. A plain free() will leak that reference. But it's only on create_context() failures which are uncommon, so this was in practice mostly harmless... --- src/modules/drizzle/drizzle.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/modules/drizzle/drizzle.c') diff --git a/src/modules/drizzle/drizzle.c b/src/modules/drizzle/drizzle.c index 54ca204..18ef731 100644 --- a/src/modules/drizzle/drizzle.c +++ b/src/modules/drizzle/drizzle.c @@ -110,10 +110,8 @@ static til_module_context_t * drizzle_create_context(const til_module_t *module, return NULL; ctxt->puddle = puddle_new(PUDDLE_SIZE, PUDDLE_SIZE); - if (!ctxt->puddle) { - free(ctxt); - return NULL; - } + if (!ctxt->puddle) + return til_module_context_free(&ctxt->til_module_context); ctxt->taps.viscosity = til_tap_init_float(ctxt, &ctxt->viscosity, 1, &ctxt->vars.viscosity, "viscosity"); ctxt->taps.rainfall = til_tap_init_float(ctxt, &ctxt->rainfall, 1, &ctxt->vars.rainfall, "rainfall"); -- cgit v1.2.1