From 5db7fbc8dc132a0db6e6860ebe981d50b97d9226 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 4 Jan 2007 05:09:08 +0000 Subject: [PATCH] Fix another leak svn path=/trunk/; revision=17050 --- ChangeLog | 3 +++ modules/printbackends/cups/gtkprintbackendcups.c | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3c084b7fa1..0f72a02c33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-01-03 Matthias Clasen + * modules/printbackends/cups/gtkprintbackendcups.c + (available_choices): Don't leak conflicts. + * gtk/gtkprintoperation.c (gtk_print_operation_finalize): Don't leak the status string. diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index bd389eba2a..6a31463aca 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -1786,12 +1786,13 @@ available_choices (ppd_file_t *ppd, all_default = FALSE; } - if (all_default && !keep_if_only_one_option) - return 0; - - if (num_conflicts == option->num_choices) - return 0; + if ((all_default && !keep_if_only_one_option) || + (num_conflicts == option->num_choices)) + { + g_free (conflicts); + return 0; + } /* Some ppds don't have a "use printer default" option for * InputSlot. This means you always have to select a particular slot, @@ -1830,7 +1831,6 @@ available_choices (ppd_file_t *ppd, if (available) { - *available = g_new (ppd_choice_t *, option->num_choices - num_conflicts + add_auto); i = 0; @@ -1843,6 +1843,8 @@ available_choices (ppd_file_t *ppd, if (add_auto) (*available)[i++] = NULL; } + + g_free (conflicts); return option->num_choices - num_conflicts + add_auto; }