summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2007-01-04 05:09:08 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-01-04 05:09:08 +0000
commit5db7fbc8dc132a0db6e6860ebe981d50b97d9226 (patch)
treed9ed9ca906f4a949fca2c313ba24664994c1ab91
parent4e332f0da6e80dc359772f29289c8752c0015cab (diff)
downloadgtk+-5db7fbc8dc132a0db6e6860ebe981d50b97d9226.tar.gz
Fix another leak
svn path=/trunk/; revision=17050
-rw-r--r--ChangeLog3
-rw-r--r--modules/printbackends/cups/gtkprintbackendcups.c14
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 <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;
}