Index: fpdfsdk/fpdfxfa/fpdfxfa_page.cpp |
diff --git a/fpdfsdk/fpdfxfa/fpdfxfa_page.cpp b/fpdfsdk/fpdfxfa/fpdfxfa_page.cpp |
index 8179db5c11d2a5635239eb095b4c7e63f08a4291..8c0d6bbf98442e0c4b0d184eac655834282014f0 100644 |
--- a/fpdfsdk/fpdfxfa/fpdfxfa_page.cpp |
+++ b/fpdfsdk/fpdfxfa/fpdfxfa_page.cpp |
@@ -16,22 +16,15 @@ |
#include "xfa/fxfa/include/xfa_ffpageview.h" |
CPDFXFA_Page::CPDFXFA_Page(CPDFXFA_Document* pDoc, int page_index) |
- : m_pPDFPage(NULL), |
- m_pXFAPageView(NULL), |
- m_iPageIndex(page_index), |
+ : m_pXFAPageView(nullptr), |
m_pDocument(pDoc), |
+ m_iPageIndex(page_index), |
m_iRef(1) {} |
-CPDFXFA_Page::~CPDFXFA_Page() { |
- if (m_pPDFPage) |
- delete m_pPDFPage; |
- m_pPDFPage = NULL; |
- m_pXFAPageView = NULL; |
-} |
+CPDFXFA_Page::~CPDFXFA_Page() {} |
void CPDFXFA_Page::Release() { |
- m_iRef--; |
- if (m_iRef > 0) |
+ if (--m_iRef > 0) |
return; |
if (m_pDocument) |
@@ -43,31 +36,27 @@ void CPDFXFA_Page::Release() { |
FX_BOOL CPDFXFA_Page::LoadPDFPage() { |
if (!m_pDocument) |
return FALSE; |
+ |
CPDF_Document* pPDFDoc = m_pDocument->GetPDFDoc(); |
- if (pPDFDoc) { |
- CPDF_Dictionary* pDict = pPDFDoc->GetPage(m_iPageIndex); |
- if (pDict == NULL) |
- return FALSE; |
- if (m_pPDFPage) { |
- if (m_pPDFPage->m_pFormDict == pDict) |
- return TRUE; |
+ if (!pPDFDoc) |
+ return FALSE; |
- delete m_pPDFPage; |
- m_pPDFPage = NULL; |
- } |
+ CPDF_Dictionary* pDict = pPDFDoc->GetPage(m_iPageIndex); |
+ if (!pDict) |
+ return FALSE; |
- m_pPDFPage = new CPDF_Page; |
+ if (!m_pPDFPage || m_pPDFPage->m_pFormDict != pDict) { |
+ m_pPDFPage.reset(new CPDF_Page); |
m_pPDFPage->Load(pPDFDoc, pDict); |
m_pPDFPage->ParseContent(nullptr); |
- return TRUE; |
} |
- |
- return FALSE; |
+ return TRUE; |
} |
FX_BOOL CPDFXFA_Page::LoadXFAPageView() { |
if (!m_pDocument) |
return FALSE; |
+ |
CXFA_FFDoc* pXFADoc = m_pDocument->GetXFADoc(); |
if (!pXFADoc) |
return FALSE; |
@@ -80,11 +69,7 @@ FX_BOOL CPDFXFA_Page::LoadXFAPageView() { |
if (!pPageView) |
return FALSE; |
- if (m_pXFAPageView == pPageView) |
- return TRUE; |
- |
m_pXFAPageView = pPageView; |
- (void)m_pXFAPageView->LoadPageView(nullptr); |
return TRUE; |
} |
@@ -110,17 +95,13 @@ FX_BOOL CPDFXFA_Page::LoadPDFPage(CPDF_Dictionary* pageDict) { |
if (!m_pDocument || m_iPageIndex < 0 || !pageDict) |
return FALSE; |
- if (m_pPDFPage) |
- delete m_pPDFPage; |
- |
- m_pPDFPage = new CPDF_Page(); |
+ m_pPDFPage.reset(new CPDF_Page()); |
m_pPDFPage->Load(m_pDocument->GetPDFDoc(), pageDict); |
m_pPDFPage->ParseContent(nullptr); |
- |
return TRUE; |
} |
-FX_FLOAT CPDFXFA_Page::GetPageWidth() { |
+FX_FLOAT CPDFXFA_Page::GetPageWidth() const { |
if (!m_pPDFPage && !m_pXFAPageView) |
return 0.0f; |
@@ -145,7 +126,7 @@ FX_FLOAT CPDFXFA_Page::GetPageWidth() { |
return 0.0f; |
} |
-FX_FLOAT CPDFXFA_Page::GetPageHeight() { |
+FX_FLOAT CPDFXFA_Page::GetPageHeight() const { |
if (!m_pPDFPage && !m_pXFAPageView) |
return 0.0f; |