diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-06-05 19:43:11 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-05 19:43:11 +0000 |
commit | 7edcf2ce07e87022361a0e00fde27aad738c0621 (patch) | |
tree | 05ea6ea6231744fb191aa36f59cad164e073baee /core/fpdfapi/page/cpdf_contentparser.h | |
parent | 778e59ed40ed31f6176a68253b694acd31f640c9 (diff) | |
download | pdfium-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.h | 6 |
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; |