From 77f15f7883638a4ced131d74c053af10a5970ce9 Mon Sep 17 00:00:00 2001 From: Artem Strygin Date: Tue, 3 Jul 2018 19:20:56 +0000 Subject: Avoid duplicate data buffering in CPDF_SyntaxParser::ReadStream(). Allow sub-streams created from an IFX_SeekableReadStream to provide stream data without copying memory. The data will only reside in the top-level stream. For example: For file http://www.major-landrover.ru/upload/attachments/f/9/f96aab07dab04ae89c8a509ec1ef2b31.pdf (18 Mb) The memory usage is reduced by ~13 Mb. Change-Id: I2595c014d0fbe1fdd181cc04965cfd7d901c2d88 Reviewed-on: https://pdfium-review.googlesource.com/35930 Commit-Queue: Art Snake Reviewed-by: dsinclair --- core/fpdfapi/edit/cpdf_flateencoder.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'core/fpdfapi/edit/cpdf_flateencoder.h') diff --git a/core/fpdfapi/edit/cpdf_flateencoder.h b/core/fpdfapi/edit/cpdf_flateencoder.h index 05633f6814..14ca7cec16 100644 --- a/core/fpdfapi/edit/cpdf_flateencoder.h +++ b/core/fpdfapi/edit/cpdf_flateencoder.h @@ -34,14 +34,14 @@ class CPDF_FlateEncoder { } private: + RetainPtr m_pAcc; + uint32_t m_dwSize; MaybeOwned m_pData; // Only one of these two pointers is valid at any time. UnownedPtr m_pDict; std::unique_ptr m_pClonedDict; - - RetainPtr m_pAcc; }; #endif // CORE_FPDFAPI_EDIT_CPDF_FLATEENCODER_H_ -- cgit v1.2.3