Re: [PATCH v8 4/5] perf config: Use zfree() instead of free() at perf_config_set__delete()

From: Arnaldo Carvalho de Melo
Date: Thu Jun 09 2016 - 09:39:40 EST


Em Wed, Jun 08, 2016 at 09:36:52PM +0900, Taeung Song escreveu:
> perf_config_set__delete() delete allocated the config set
> but the global variable 'config_set' is used all around.

> So purge and zfree by an address of the global variable
> , i.e. 'struct perf_config_set **' type
> instead of using local variable 'set' of which type
> is 'struct perf_config_set *'.

> -void perf_config_set__delete(struct perf_config_set *set)
> +void perf_config_set__delete(struct perf_config_set **set)
> {
> - if (set == NULL)
> + if (*set == NULL)
> return;
>
> - perf_config_set__purge(set);
> - free(set);
> + perf_config_set__purge(*set);
> + zfree(set);
> }

Nope, don't change conventions like taht, a delete method should not
receive a pointer to the pointer to be deleted, no odd cases, please.

If you really think this is interesting, please introduce zdelete(),
i.e.:

void perf_config_set__zdelete(struct perf_config_set **set)
{
if (!set)
return;

perf_config_set__delete(*set);
*set = NULL;
}

- Arnaldo