summaryrefslogtreecommitdiff
path: root/core/fpdfapi
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-07-05 16:55:48 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-05 16:55:48 +0000
commit6c4ca9f597ae84550e0b8a4323e44b188f9bb274 (patch)
tree6f1cb0f180279e943d5e6ed463bfb17edf154bd8 /core/fpdfapi
parent3fab31fb8e35eca693322ac292228e993b508102 (diff)
downloadpdfium-6c4ca9f597ae84550e0b8a4323e44b188f9bb274.tar.xz
Delete CPDF_ContentMark::HasRef()
This is called by many client to make sure CountItems() does not crash. Moving the check to CountItems() makes HasRef() unnecessary. Bug: pdfium:1037 Change-Id: I4f21f33a88c9aad54f0dae18a38b370c6ceaec80 Reviewed-on: https://pdfium-review.googlesource.com/37133 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core/fpdfapi')
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.cpp3
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.h2
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.cpp6
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp9
4 files changed, 9 insertions, 11 deletions
diff --git a/core/fpdfapi/page/cpdf_contentmark.cpp b/core/fpdfapi/page/cpdf_contentmark.cpp
index 77c29a53d7..a4bb15ed9a 100644
--- a/core/fpdfapi/page/cpdf_contentmark.cpp
+++ b/core/fpdfapi/page/cpdf_contentmark.cpp
@@ -23,6 +23,9 @@ std::unique_ptr<CPDF_ContentMark> CPDF_ContentMark::Clone() {
}
size_t CPDF_ContentMark::CountItems() const {
+ if (!m_Ref)
+ return 0;
+
return m_Ref->CountItems();
}
diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h
index 241a0ffbf3..6012350398 100644
--- a/core/fpdfapi/page/cpdf_contentmark.h
+++ b/core/fpdfapi/page/cpdf_contentmark.h
@@ -29,8 +29,6 @@ class CPDF_ContentMark {
void AddMark(ByteString name, const CPDF_Dictionary* pDict, bool bDirect);
void DeleteLastMark();
- bool HasRef() const { return !!m_Ref; }
-
private:
class MarkData : public Retainable {
public:
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index b2ac553191..c698c52370 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -868,10 +868,8 @@ void CPDF_StreamContentParser::Handle_MarkPlace_Dictionary() {}
void CPDF_StreamContentParser::Handle_EndImage() {}
void CPDF_StreamContentParser::Handle_EndMarkedContent() {
- if (m_pCurContentMark->HasRef()) {
- m_pCurContentMark = m_pCurContentMark->Clone();
- m_pCurContentMark->DeleteLastMark();
- }
+ m_pCurContentMark = m_pCurContentMark->Clone();
+ m_pCurContentMark->DeleteLastMark();
}
void CPDF_StreamContentParser::Handle_EndText() {
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 29a30157df..433d32b886 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1100,10 +1100,9 @@ void CPDF_RenderStatus::RenderSingleObject(CPDF_PageObject* pObj,
return;
}
m_pCurObj = pObj;
- if (m_Options.GetOCContext() && pObj->m_ContentMark.HasRef()) {
- if (!m_Options.GetOCContext()->CheckObjectVisible(pObj)) {
- return;
- }
+ if (m_Options.GetOCContext() &&
+ !m_Options.GetOCContext()->CheckObjectVisible(pObj)) {
+ return;
}
ProcessClipPath(pObj->m_ClipPath, pObj2Device);
if (ProcessTransparency(pObj, pObj2Device)) {
@@ -1129,7 +1128,7 @@ bool CPDF_RenderStatus::ContinueSingleObject(CPDF_PageObject* pObj,
}
m_pCurObj = pObj;
- if (m_Options.GetOCContext() && pObj->m_ContentMark.HasRef() &&
+ if (m_Options.GetOCContext() &&
!m_Options.GetOCContext()->CheckObjectVisible(pObj)) {
return false;
}