From 0dcf1f40652edd701d032227a742f6a63e6e3fae Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Thu, 21 Jun 2018 18:51:15 +0000 Subject: Do not save content stream if all page objects were removed from it. Bug: pdfium:1051 Change-Id: Ia990a47eeceb47fd2b15fe4ea7226861507484db Reviewed-on: https://pdfium-review.googlesource.com/35115 Reviewed-by: dsinclair Commit-Queue: Henrique Nakashima --- core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp') diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index 80b121a572..da6c74e2c7 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp @@ -161,11 +161,14 @@ void CPDF_PageContentGenerator::UpdateContentStreams( page_content_manager.GetStreamByIndex(stream_index); ASSERT(old_stream); - // TODO(pdfium:1051): Remove streams that are now empty. If buf is empty, - // remove this instead of setting the data. - - old_stream->SetData(buf); + // If buf is now empty, remove the stream instead of setting the data. + if (buf->tellp() <= 0) + page_content_manager.ScheduleRemoveStreamByIndex(stream_index); + else + old_stream->SetData(buf); } + + page_content_manager.ExecuteScheduledRemovals(); } ByteString CPDF_PageContentGenerator::RealizeResource( -- cgit v1.2.3