Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: core/src/fpdfapi/fpdf_page/fpdf_page.cpp

Issue 1601093009: Redo CPDF_PageObjects - part 1 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/include/fpdfapi/fpdf_page.h ('k') | core/src/fpdfapi/fpdf_page/fpdf_page_graph_state.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/src/fpdfapi/fpdf_page/fpdf_page.cpp
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
index 7e2492fad7722f6e1144962b1588aa8b160aadc4..1d18b5343d9edae19c3d1abf801c8f015c775ee7 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
@@ -666,24 +666,18 @@ void CPDF_FormObject::CalcBoundingBox() {
m_Right = form_rect.right;
m_Top = form_rect.top;
}
-CPDF_PageObjects::CPDF_PageObjects(FX_BOOL bReleaseMembers)
+CPDF_PageObjects::CPDF_PageObjects()
: m_pFormDict(nullptr),
m_pFormStream(nullptr),
m_pDocument(nullptr),
m_pPageResources(nullptr),
m_pResources(nullptr),
m_Transparency(0),
- m_ObjectList(128),
m_bBackgroundAlphaNeeded(FALSE),
m_bHasImageMask(FALSE),
- m_bReleaseMembers(bReleaseMembers),
- m_pParser(nullptr),
- m_ParseState(CONTENT_NOT_PARSED) {}
+ m_ParseState(CONTENT_NOT_PARSED),
+ m_ObjectList(128) {}
CPDF_PageObjects::~CPDF_PageObjects() {
- delete m_pParser;
- if (!m_bReleaseMembers) {
- return;
- }
FX_POSITION pos = m_ObjectList.GetHeadPosition();
while (pos) {
delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
@@ -696,8 +690,7 @@ void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause) {
m_pParser->Continue(pPause);
if (m_pParser->GetStatus() == CPDF_ContentParser::Done) {
m_ParseState = CONTENT_PARSED;
- delete m_pParser;
- m_pParser = NULL;
+ m_pParser.reset();
}
}
FX_POSITION CPDF_PageObjects::InsertObject(FX_POSITION posInsertAfter,
@@ -774,21 +767,9 @@ void CPDF_PageObjects::LoadTransInfo() {
m_Transparency |= PDFTRANS_KNOCKOUT;
}
}
-void CPDF_PageObjects::ClearCacheObjects() {
- m_ParseState = CONTENT_NOT_PARSED;
- delete m_pParser;
- m_pParser = NULL;
- if (m_bReleaseMembers) {
- FX_POSITION pos = m_ObjectList.GetHeadPosition();
- while (pos) {
- delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
- }
- }
- m_ObjectList.RemoveAll();
-}
-CPDF_Page::CPDF_Page() {
- m_pPageRender = NULL;
-}
+
+CPDF_Page::CPDF_Page() : m_pPageRender(nullptr) {}
+
void CPDF_Page::Load(CPDF_Document* pDocument,
CPDF_Dictionary* pPageDict,
FX_BOOL bPageCache) {
@@ -858,20 +839,17 @@ void CPDF_Page::Load(CPDF_Document* pDocument,
m_Transparency = PDFTRANS_ISOLATED;
LoadTransInfo();
}
-void CPDF_Page::StartParse(CPDF_ParseOptions* pOptions, FX_BOOL bReParse) {
- if (bReParse) {
- ClearCacheObjects();
- }
+void CPDF_Page::StartParse(CPDF_ParseOptions* pOptions) {
if (m_ParseState == CONTENT_PARSED || m_ParseState == CONTENT_PARSING) {
return;
}
- m_pParser = new CPDF_ContentParser;
+ m_pParser.reset(new CPDF_ContentParser);
m_pParser->Start(this, pOptions);
m_ParseState = CONTENT_PARSING;
}
-void CPDF_Page::ParseContent(CPDF_ParseOptions* pOptions, FX_BOOL bReParse) {
- StartParse(pOptions, bReParse);
- ContinueParse(NULL);
+void CPDF_Page::ParseContent(CPDF_ParseOptions* pOptions) {
+ StartParse(pOptions);
+ ContinueParse(nullptr);
}
CPDF_Page::~CPDF_Page() {
if (m_pPageRender) {
@@ -928,7 +906,7 @@ void CPDF_Form::StartParse(CPDF_AllStates* pGraphicStates,
if (m_ParseState == CONTENT_PARSED || m_ParseState == CONTENT_PARSING) {
return;
}
- m_pParser = new CPDF_ContentParser;
+ m_pParser.reset(new CPDF_ContentParser);
m_pParser->Start(this, pGraphicStates, pParentMatrix, pType3Char, pOptions,
level);
m_ParseState = CONTENT_PARSING;
« no previous file with comments | « core/include/fpdfapi/fpdf_page.h ('k') | core/src/fpdfapi/fpdf_page/fpdf_page_graph_state.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698