From f1ea4afdbe1b5d02ef3dd0a7e9dc8806a4225e10 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 21 May 2018 16:39:02 +0200 Subject: [PATCH] Make wxHtmlPrintout::m_Renderer{,Hdr} objects instead of pointers There is no need to allocate these objects on the heap and delete them later when we can just make them members of wxHtmlPrintout object itself. No real changes. --- include/wx/html/htmprint.h | 3 +- src/html/htmprint.cpp | 64 +++++++++++++++++--------------------- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/include/wx/html/htmprint.h b/include/wx/html/htmprint.h index 6098b9bd94..71ef634f88 100644 --- a/include/wx/html/htmprint.h +++ b/include/wx/html/htmprint.h @@ -121,7 +121,6 @@ class WXDLLIMPEXP_HTML wxHtmlPrintout : public wxPrintout { public: wxHtmlPrintout(const wxString& title = wxT("Printout")); - virtual ~wxHtmlPrintout(); void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true); // prepares the class for printing this html document. @@ -207,7 +206,7 @@ private: wxString m_Headers[2], m_Footers[2]; int m_HeaderHeight, m_FooterHeight; - wxHtmlDCRenderer *m_Renderer, *m_RendererHdr; + wxHtmlDCRenderer m_Renderer, m_RendererHdr; float m_MarginTop, m_MarginBottom, m_MarginLeft, m_MarginRight, m_MarginSpace; // list of HTML filters diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp index 5709a798e1..9f5c8d39d1 100644 --- a/src/html/htmprint.cpp +++ b/src/html/htmprint.cpp @@ -193,8 +193,6 @@ wxList wxHtmlPrintout::m_Filters; wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title) { - m_Renderer = new wxHtmlDCRenderer; - m_RendererHdr = new wxHtmlDCRenderer; m_NumPages = INT_MAX; m_Document = m_BasePath = wxEmptyString; m_BasePathIsDir = true; m_Headers[0] = m_Headers[1] = wxEmptyString; @@ -206,12 +204,6 @@ wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title) -wxHtmlPrintout::~wxHtmlPrintout() -{ - delete m_Renderer; - delete m_RendererHdr; -} - void wxHtmlPrintout::CleanUpStatics() { WX_CLEAR_LIST(wxList, m_Filters); @@ -315,34 +307,34 @@ void wxHtmlPrintout::OnPreparePrinting() /* prepare headers/footers renderer: */ - m_RendererHdr->SetDC(GetDC(), + m_RendererHdr.SetDC(GetDC(), (double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / (double)ppiScreenY); - m_RendererHdr->SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)), + m_RendererHdr.SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)), (int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom))); if (!m_Headers[0].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[0], 1)); - m_HeaderHeight = m_RendererHdr->GetTotalHeight(); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[0], 1)); + m_HeaderHeight = m_RendererHdr.GetTotalHeight(); } else if (!m_Headers[1].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[1], 1)); - m_HeaderHeight = m_RendererHdr->GetTotalHeight(); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[1], 1)); + m_HeaderHeight = m_RendererHdr.GetTotalHeight(); } if (!m_Footers[0].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[0], 1)); - m_FooterHeight = m_RendererHdr->GetTotalHeight(); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[0], 1)); + m_FooterHeight = m_RendererHdr.GetTotalHeight(); } else if (!m_Footers[1].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[1], 1)); - m_FooterHeight = m_RendererHdr->GetTotalHeight(); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[1], 1)); + m_FooterHeight = m_RendererHdr.GetTotalHeight(); } /* prepare main renderer: */ - m_Renderer->SetDC(GetDC(), + m_Renderer.SetDC(GetDC(), (double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / (double)ppiScreenY); @@ -353,12 +345,12 @@ void wxHtmlPrintout::OnPreparePrinting() if ( m_FooterHeight ) printAreaH -= int(m_FooterHeight + m_MarginSpace * ppmm_v); - m_Renderer->SetSize(printAreaW, printAreaH); - m_Renderer->SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir); + m_Renderer.SetSize(printAreaW, printAreaH); + m_Renderer.SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir); if ( CheckFit(wxSize(printAreaW, printAreaH), - wxSize(m_Renderer->GetTotalWidth(), - m_Renderer->GetTotalHeight())) || IsPreview() ) + wxSize(m_Renderer.GetTotalWidth(), + m_Renderer.GetTotalHeight())) || IsPreview() ) { // do paginate the document CountPages(); @@ -496,12 +488,12 @@ void wxHtmlPrintout::CountPages() m_PageBreaks.Add( 0); do { - pos = m_Renderer->Render((int)( ppmm_h * m_MarginLeft), + pos = m_Renderer.Render((int)( ppmm_h * m_MarginLeft), (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight), m_PageBreaks, pos, true, INT_MAX); m_PageBreaks.Add( pos); - } while (pos < m_Renderer->GetTotalHeight()); + } while (pos < m_Renderer.GetTotalHeight()); } @@ -529,29 +521,29 @@ void wxHtmlPrintout::RenderPage(wxDC *dc, int page) dc->SetUserScale((double)dc_w / (double)pageWidth, (double)dc_h / (double)pageHeight); - m_Renderer->SetDC(dc, + m_Renderer.SetDC(dc, (double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / (double)ppiScreenY); dc->SetBackgroundMode(wxTRANSPARENT); - m_Renderer->Render((int) (ppmm_h * m_MarginLeft), + m_Renderer.Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight), m_PageBreaks, m_PageBreaks[page-1], false, m_PageBreaks[page]-m_PageBreaks[page-1]); - m_RendererHdr->SetDC(dc, + m_RendererHdr.SetDC(dc, (double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / (double)ppiScreenY); if (!m_Headers[page % 2].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[page % 2], page)); - m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop), m_PageBreaks); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[page % 2], page)); + m_RendererHdr.Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop), m_PageBreaks); } if (!m_Footers[page % 2].empty()) { - m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[page % 2], page)); - m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight), m_PageBreaks); + m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[page % 2], page)); + m_RendererHdr.Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight), m_PageBreaks); } } @@ -604,16 +596,16 @@ void wxHtmlPrintout::SetMargins(const wxPageSetupDialogData& pageSetupData) void wxHtmlPrintout::SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes) { - m_Renderer->SetFonts(normal_face, fixed_face, sizes); - m_RendererHdr->SetFonts(normal_face, fixed_face, sizes); + m_Renderer.SetFonts(normal_face, fixed_face, sizes); + m_RendererHdr.SetFonts(normal_face, fixed_face, sizes); } void wxHtmlPrintout::SetStandardFonts(int size, const wxString& normal_face, const wxString& fixed_face) { - m_Renderer->SetStandardFonts(size, normal_face, fixed_face); - m_RendererHdr->SetStandardFonts(size, normal_face, fixed_face); + m_Renderer.SetStandardFonts(size, normal_face, fixed_face); + m_RendererHdr.SetStandardFonts(size, normal_face, fixed_face); }