fix more memory leaks

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2014-04-04 06:45:27 +00:00
parent cfe6604d5d
commit 8009bf50ae

View File

@@ -580,7 +580,10 @@ GtkPageSetup* wxGtkPrintNativeData::GetPageSetupFromSettings(GtkPrintSettings* s
GtkPaperSize *paper_size = gtk_print_settings_get_paper_size (settings); GtkPaperSize *paper_size = gtk_print_settings_get_paper_size (settings);
if (paper_size != NULL) if (paper_size != NULL)
{
gtk_page_setup_set_paper_size_and_default_margins (page_setup, paper_size); gtk_page_setup_set_paper_size_and_default_margins (page_setup, paper_size);
gtk_paper_size_free(paper_size);
}
return page_setup; return page_setup;
} }
@@ -651,11 +654,10 @@ int wxGtkPrintDialog::ShowModal()
gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_ALL); gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_ALL);
else { else {
gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_RANGES); gtk_print_settings_set_print_pages(settings, GTK_PRINT_PAGES_RANGES);
GtkPageRange *range; GtkPageRange range;
range = g_new (GtkPageRange, 1); range.start = fromPage - 1;
range[0].start = fromPage-1; range.end = (toPage >= fromPage) ? toPage - 1 : fromPage - 1;
range[0].end = (toPage >= fromPage) ? toPage-1 : fromPage-1; gtk_print_settings_set_page_ranges(settings, &range, 1);
gtk_print_settings_set_page_ranges (settings, range, 1);
} }
GtkPrintOperation * const printOp = native->GetPrintJob(); GtkPrintOperation * const printOp = native->GetPrintJob();
@@ -719,6 +721,7 @@ int wxGtkPrintDialog::ShowModal()
{ {
m_printDialogData.SetFromPage( range[0].start ); m_printDialogData.SetFromPage( range[0].start );
m_printDialogData.SetToPage( range[0].end ); m_printDialogData.SetToPage( range[0].end );
g_free(range);
} }
else { else {
m_printDialogData.SetAllPages( true ); 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; if (range[i].start > maxPage-1) range[i].start = maxPage-1;
numPages += range[i].end - range[i].start + 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;} break;}
case GTK_PRINT_PAGES_ALL: case GTK_PRINT_PAGES_ALL:
default: default:
@@ -1075,6 +1082,7 @@ void wxGtkPrinter::DrawPage(wxPrintout *printout,
{ {
startPage = range[0].start + 1; startPage = range[0].start + 1;
endPage = range[0].end + 1; endPage = range[0].end + 1;
g_free(range);
} }
else { else {
startPage = minPage; startPage = minPage;