summaryrefslogtreecommitdiff
path: root/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-06-21 18:51:15 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-21 18:51:15 +0000
commit0dcf1f40652edd701d032227a742f6a63e6e3fae (patch)
tree5bb3c21d9e502e1b32488535769a4ed90384a391 /core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
parentd52a0afaa3e4374dee469e41db4389bf9c61c4a9 (diff)
downloadpdfium-0dcf1f40652edd701d032227a742f6a63e6e3fae.tar.xz
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 <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp')
-rw-r--r--core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp11
1 files changed, 7 insertions, 4 deletions
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(