summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gtk/gtkpagesetup.c12
2 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3fcb4d16ac..113356aa29 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-04 Christian Persch <chpe@cvs.gnome.org>
+
+ * gtk/gtkpagesetup.c: (gtk_page_setup_get_paper_size),
+ (gtk_page_setup_set_paper_size): Don't leak the old page size when
+ setting a new one. Bug #382314.
+
2006-12-03 Michael Natterer <mitch@gimp.org>
* gtk/gtktextview.c: remove FIXME #include that is no longer needed.
diff --git a/gtk/gtkpagesetup.c b/gtk/gtkpagesetup.c
index bf9793a7c1..9db0fc719d 100644
--- a/gtk/gtkpagesetup.c
+++ b/gtk/gtkpagesetup.c
@@ -163,6 +163,8 @@ gtk_page_setup_set_orientation (GtkPageSetup *setup,
GtkPaperSize *
gtk_page_setup_get_paper_size (GtkPageSetup *setup)
{
+ g_return_val_if_fail (GTK_IS_PAGE_SETUP (setup), NULL);
+
return setup->paper_size;
}
@@ -181,7 +183,17 @@ void
gtk_page_setup_set_paper_size (GtkPageSetup *setup,
GtkPaperSize *size)
{
+ GtkPaperSize *old_size;
+
+ g_return_if_fail (GTK_IS_PAGE_SETUP (setup));
+ g_return_if_fail (size != NULL);
+
+ old_size = setup->paper_size;
+
setup->paper_size = gtk_paper_size_copy (size);
+
+ if (old_size)
+ gtk_paper_size_free (old_size);
}
/**