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:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user