summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_pageobjectholder.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-06-05 19:24:42 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-05 19:24:42 +0000
commit778e59ed40ed31f6176a68253b694acd31f640c9 (patch)
tree8fbaac034139d4a64a561f481c56eaf28d2b8118 /core/fpdfapi/page/cpdf_pageobjectholder.cpp
parent354ed202ccd4d6b9d408789a30517ebb1633570b (diff)
downloadpdfium-778e59ed40ed31f6176a68253b694acd31f640c9.tar.xz
Tidy parser lifecycle state machine in CPDF_PageObjectHolder.
Only update state in CPDF_PageObjectHolder itself. Make more data private. Remove CPDF_Page::GetPageBBox() as exact duplicate of CPDF_PageObjectHolder::GetBBox(). Change-Id: I083ec33f61a1490e7a5e673c9787751af15a6cd1 Reviewed-on: https://pdfium-review.googlesource.com/33810 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_pageobjectholder.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_pageobjectholder.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
index 4d4fc56ac2..81ee6e2e11 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
@@ -29,18 +29,23 @@ bool CPDF_PageObjectHolder::IsPage() const {
return false;
}
+void CPDF_PageObjectHolder::StartParse(
+ std::unique_ptr<CPDF_ContentParser> pParser) {
+ ASSERT(m_ParseState == ParseState::kNotParsed);
+ m_pParser = std::move(pParser);
+ m_ParseState = ParseState::kParsing;
+}
+
void CPDF_PageObjectHolder::ContinueParse(PauseIndicatorIface* pPause) {
- if (!m_pParser) {
- m_ParseState = CONTENT_PARSED;
+ if (m_ParseState == ParseState::kParsed)
return;
- }
+ ASSERT(m_ParseState == ParseState::kParsing);
if (m_pParser->Continue(pPause))
return;
- m_ParseState = CONTENT_PARSED;
+ m_ParseState = ParseState::kParsed;
m_pDocument->IncrementParsedPageCount();
-
if (m_pParser->GetCurStates())
m_LastCTM = m_pParser->GetCurStates()->m_CTM;