]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkpagesetup.c
Don't leak the old page size when
[~andy/gtk] / gtk / gtkpagesetup.c
index bf9793a7c1fab5a6f9bfd02d115e1a52f15d2f62..9db0fc719d4fcf2d26e925831dc429a1bd9a5913 100644 (file)
@@ -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);
 }
 
 /**