Message ID | 20160719085432.4572-4-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
On 07/19/2016 02:53 AM, marcandre.lureau@redhat.com wrote: > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > Free the list, not just the elements. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > qga/main.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/qga/main.c b/qga/main.c > index 4c3b2c7..bb48214 100644 > --- a/qga/main.c > +++ b/qga/main.c > @@ -1175,6 +1175,7 @@ static void config_free(GAConfig *config) > #ifdef CONFIG_FSFREEZE > g_free(config->fsfreeze_hook); > #endif > + g_list_free_full(config->blacklist, g_free); > g_free(config); Won't work. We still allow glib 2.22, but g_list_free_full() was added in 2.28. See also commit ba4dba5, where I had to open-code around the lack of the relative g_queue_free_full(). You can, of course, do a prereq patch that supplies fallbacks for older glib, but it may be easiest to just open-code the additional step of g_list_free(config->blacklist)... > @@ -1310,11 +1311,6 @@ static int run_agent(GAState *s, GAConfig *config) > return EXIT_SUCCESS; > } > > -static void free_blacklist_entry(gpointer entry, gpointer unused) > -{ > - g_free(entry); > -} > - > int main(int argc, char **argv) > { > int ret = EXIT_SUCCESS; > @@ -1379,7 +1375,6 @@ end: > if (s->channel) { > ga_channel_free(s->channel); > } > - g_list_foreach(config->blacklist, free_blacklist_entry, NULL); ...right here, without deleting any of the existing code.
diff --git a/qga/main.c b/qga/main.c index 4c3b2c7..bb48214 100644 --- a/qga/main.c +++ b/qga/main.c @@ -1175,6 +1175,7 @@ static void config_free(GAConfig *config) #ifdef CONFIG_FSFREEZE g_free(config->fsfreeze_hook); #endif + g_list_free_full(config->blacklist, g_free); g_free(config); } @@ -1310,11 +1311,6 @@ static int run_agent(GAState *s, GAConfig *config) return EXIT_SUCCESS; } -static void free_blacklist_entry(gpointer entry, gpointer unused) -{ - g_free(entry); -} - int main(int argc, char **argv) { int ret = EXIT_SUCCESS; @@ -1379,7 +1375,6 @@ end: if (s->channel) { ga_channel_free(s->channel); } - g_list_foreach(config->blacklist, free_blacklist_entry, NULL); g_free(s->pstate_filepath); g_free(s->state_filepath_isfrozen);