diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2007-01-04 05:09:08 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2007-01-04 05:09:08 +0000 |
commit | 5db7fbc8dc132a0db6e6860ebe981d50b97d9226 (patch) | |
tree | d9ed9ca906f4a949fca2c313ba24664994c1ab91 | |
parent | 4e332f0da6e80dc359772f29289c8752c0015cab (diff) | |
download | gtk+-5db7fbc8dc132a0db6e6860ebe981d50b97d9226.tar.gz |
Fix another leak
svn path=/trunk/; revision=17050
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 14 |
2 files changed, 11 insertions, 6 deletions
@@ -1,5 +1,8 @@ 2007-01-03 Matthias Clasen <mclasen@redhat.com> + * 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; } |