From 68d04f284423414392b7176cbd74671f50bae196 Mon Sep 17 00:00:00 2001 From: Artem Strygin Date: Thu, 12 Jul 2018 09:18:19 +0000 Subject: Reland "Avoid duplicate data buffering in CPDF_SyntaxParser::ReadStream()." This is a reland of 77f15f7883638a4ced131d74c053af10a5970ce9 Original change's description: > 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 Change-Id: I4c4d5dcf42ff44784468ac7a7c302df509fc804d Reviewed-on: https://pdfium-review.googlesource.com/37313 Reviewed-by: Henrique Nakashima Commit-Queue: Art Snake --- testing/embedder_test.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'testing/embedder_test.cpp') diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index e4ac4ad2c7..e874640218 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -351,7 +351,9 @@ FPDF_DOCUMENT EmbedderTest::OpenSavedDocument(const char* password) { memset(&saved_file_access_, 0, sizeof(saved_file_access_)); saved_file_access_.m_FileLen = data_string_.size(); saved_file_access_.m_GetBlock = GetBlockFromString; - saved_file_access_.m_Param = &data_string_; + // Copy data to prevent clearing it before saved document close. + saved_document_file_data_ = data_string_; + saved_file_access_.m_Param = &saved_document_file_data_; saved_fake_file_access_ = pdfium::MakeUnique(&saved_file_access_); -- cgit v1.2.3