[gnumeric] fix page-setup leaks [#663325]



commit 45695209938b975b9209e1560408bd100e1adb2d
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Thu Nov 3 13:38:52 2011 -0600

    fix page-setup leaks [#663325]
    
    2011-11-03  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* dialog-printer-setup.c (dialog_gtk_printer_setup_cb): do not
    	unref page-setup
    
    2011-11-03 Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* src/print-info.c (print_info_get_page_setup): do not return a ref
    	* src/print.c (gnm_print_sheet): do not unref page-setup
    	(gnm_print_so): ditto

 ChangeLog                          |    6 ++++++
 src/dialogs/ChangeLog              |    5 +++++
 src/dialogs/dialog-printer-setup.c |    3 ---
 src/print-info.c                   |    2 +-
 src/print-info.h                   |    2 +-
 src/print.c                        |    8 ++------
 6 files changed, 15 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f52e36c..a0a56cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-11-03 Andreas J. Guelzow <aguelzow pyrshep ca>
 
+	* src/print-info.c (print_info_get_page_setup): do not return a ref
+	* src/print.c (gnm_print_sheet): do not unref page-setup
+	(gnm_print_so): ditto
+
+2011-11-03 Andreas J. Guelzow <aguelzow pyrshep ca>
+
 	* src/print-info.c (pdf_write_workbook): madify arguments
 	(cb_free_sheets): deleted
 	(pdf_export): new
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 6adf058..7e0aefa 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-03  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* dialog-printer-setup.c (dialog_gtk_printer_setup_cb): do not
+	unref page-setup
+
 2011-11-02  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* dialog-define-names.c (cb_name_guru_name_edited): check for
diff --git a/src/dialogs/dialog-printer-setup.c b/src/dialogs/dialog-printer-setup.c
index 4eb1ec0..5323ef7 100644
--- a/src/dialogs/dialog-printer-setup.c
+++ b/src/dialogs/dialog-printer-setup.c
@@ -3023,9 +3023,6 @@ dialog_gtk_printer_setup_cb (PrinterSetupState *state)
 		 NULL,
 		 dialog_printer_setup_done_cb,
 		 state);
-
-	if (page_setup)
-		g_object_unref (page_setup);
 }
 
 
diff --git a/src/print-info.c b/src/print-info.c
index 4ca0c2e..9718ede 100644
--- a/src/print-info.c
+++ b/src/print-info.c
@@ -1217,7 +1217,7 @@ print_info_get_page_setup (PrintInformation *pi)
 	print_info_load_defaults (pi);
 
 	if (pi->page_setup)
-		return g_object_ref (pi->page_setup);
+		return pi->page_setup;
 	else
 		return NULL;
 }
diff --git a/src/print-info.h b/src/print-info.h
index 0af4162..af8c59f 100644
--- a/src/print-info.h
+++ b/src/print-info.h
@@ -123,7 +123,7 @@ PrintInformation *print_info_dup	 (PrintInformation const *pi);
 void              print_info_free        (PrintInformation *pi);
 void              print_info_save        (PrintInformation *pi);
 
-GtkPageSetup     *print_info_get_page_setup (PrintInformation *pi);
+GtkPageSetup     *print_info_get_page_setup (PrintInformation *pi); /* Does not return a ref! */
 void              print_info_set_page_setup (PrintInformation *pi, GtkPageSetup *page_setup);
 
 PrintHF          *print_hf_new           (char const *left,
diff --git a/src/print.c b/src/print.c
index 1e1ff18..58c09c2 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1772,10 +1772,8 @@ gnm_print_sheet (WorkbookControl *wbc, Sheet *sheet,
 	g_object_unref (settings);
 
 	page_setup = print_info_get_page_setup (sheet->print_info);
-	if (page_setup) {
+	if (page_setup)
 		gtk_print_operation_set_default_page_setup (print, page_setup);
-		g_object_unref (page_setup);
-	}
 
 	g_signal_connect (print, "preview", G_CALLBACK (gnm_ready_preview_cb), pi);
 	g_signal_connect (print, "begin-print", G_CALLBACK (gnm_begin_print_cb), pi);
@@ -1967,10 +1965,8 @@ gnm_print_so (WorkbookControl *wbc, GPtrArray *sos,
 	g_object_unref (settings);
 
 	page_setup = print_info_get_page_setup (sheet->print_info);
-	if (page_setup) {
+	if (page_setup)
 		gtk_print_operation_set_default_page_setup (print, page_setup);
-		g_object_unref (page_setup);
-	}
 
 	gtk_print_operation_set_n_pages (print, 1);
 	gtk_print_operation_set_embed_page_setup (print, TRUE);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]