summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_contentparser.h
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-06-05 19:43:11 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-05 19:43:11 +0000
commit7edcf2ce07e87022361a0e00fde27aad738c0621 (patch)
tree05ea6ea6231744fb191aa36f59cad164e073baee /core/fpdfapi/page/cpdf_contentparser.h
parent778e59ed40ed31f6176a68253b694acd31f640c9 (diff)
downloadpdfium-7edcf2ce07e87022361a0e00fde27aad738c0621.tar.xz
Revert "Do not merge content streams to parse them."
This reverts commit 9d3fb11a985a8f2aefbf361c0030c7bce2248b8e. Reason for revert: Break rendering of http://www.flbb.lu/bio_files/BIO_25_2005.pdf Original change's description: > Do not merge content streams to parse them. > > Removed the PrepareContent() step in CPDF_ContentParser, as its goal > was to merge these streams. > > In Parse(), now loop through the m_StreamArray and parse each stream > separately. > > Bug: pdfium:1051 > Change-Id: Id07f3efe766828081c8cf8601bf69c4f37e20e13 > Reviewed-on: https://pdfium-review.googlesource.com/33595 > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > Reviewed-by: Ryan Harrison <rharrison@chromium.org> TBR=thestig@chromium.org,hnakashima@chromium.org,rharrison@chromium.org Change-Id: I8186b2dac8538ca477302bb91e22dcc54124461a Bug: pdfium:1051 Reviewed-on: https://pdfium-review.googlesource.com/33991 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_contentparser.h')
-rw-r--r--core/fpdfapi/page/cpdf_contentparser.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/fpdfapi/page/cpdf_contentparser.h b/core/fpdfapi/page/cpdf_contentparser.h
index 92a3e06890..f9b491defa 100644
--- a/core/fpdfapi/page/cpdf_contentparser.h
+++ b/core/fpdfapi/page/cpdf_contentparser.h
@@ -42,22 +42,26 @@ class CPDF_ContentParser {
private:
enum class Stage : uint8_t {
kGetContent = 1,
+ kPrepareContent,
kParse,
kCheckClip,
kComplete,
};
Stage GetContent();
+ Stage PrepareContent();
Stage Parse();
Stage CheckClip();
Stage m_CurrentStage;
UnownedPtr<CPDF_PageObjectHolder> const m_pObjectHolder;
UnownedPtr<CPDF_Type3Char> m_pType3Char; // Only used when parsing forms.
+ RetainPtr<CPDF_StreamAcc> m_pSingleStream;
std::vector<RetainPtr<CPDF_StreamAcc>> m_StreamArray;
+ MaybeOwned<uint8_t, FxFreeDeleter> m_pData;
uint32_t m_nStreams = 0;
+ uint32_t m_Size = 0;
uint32_t m_CurrentOffset = 0;
- uint32_t m_CurrentStream = 0;
// Only used when parsing pages.
std::unique_ptr<std::set<const uint8_t*>> m_parsedSet;