From 8009bf50ae6e58ee28b892ed534f8ebdeee03b64 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Fri, 4 Apr 2014 06:45:27 +0000 Subject: [PATCH] fix more memory leaks git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/print.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/gtk/print.cpp b/src/gtk/print.cpp index 4a4790bfec..7399cebb6d 100644 --- a/src/gtk/print.cpp +++ b/src/gtk/print.cpp @@ -580,7 +580,10 @@ GtkPageSetup* wxGtkPrintNativeData::GetPageSetupFromSettings(GtkPrintSettings* s GtkPaperSize *paper_size = gtk_print_settings_get_paper_size (settings); if (paper_size != NULL) + { gtk_page_setup_set_paper_size_and_default_margins (page_setup, paper_size); + gtk_paper_size_free(paper_size); + } return page_setup; } @@ -651,11 +654,10 @@ int wxGtkPrintDialog::ShowModal() gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_ALL); else { gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_RANGES); - GtkPageRange *range; - range = g_new (GtkPageRange, 1); - range[0].start = fromPage-1; - range[0].end = (toPage >= fromPage) ? toPage-1 : fromPage-1; - gtk_print_settings_set_page_ranges (settings, range, 1); + GtkPageRange range; + range.start = fromPage - 1; + range.end = (toPage >= fromPage) ? toPage - 1 : fromPage - 1; + gtk_print_settings_set_page_ranges(settings, &range, 1); } GtkPrintOperation * const printOp = native->GetPrintJob(); @@ -719,6 +721,7 @@ int wxGtkPrintDialog::ShowModal() { m_printDialogData.SetFromPage( range[0].start ); m_printDialogData.SetToPage( range[0].end ); + g_free(range); } else { m_printDialogData.SetAllPages( true ); @@ -1034,7 +1037,11 @@ void wxGtkPrinter::BeginPrint(wxPrintout *printout, GtkPrintOperation *operation if (range[i].start > maxPage-1) range[i].start = maxPage-1; numPages += range[i].end - range[i].start + 1; } - gtk_print_settings_set_page_ranges (settings, range, 1); + if (range) + { + gtk_print_settings_set_page_ranges(settings, range, 1); + g_free(range); + } break;} case GTK_PRINT_PAGES_ALL: default: @@ -1075,6 +1082,7 @@ void wxGtkPrinter::DrawPage(wxPrintout *printout, { startPage = range[0].start + 1; endPage = range[0].end + 1; + g_free(range); } else { startPage = minPage;