diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index ba31516..88f14b2 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -30,6 +30,7 @@
 #include "core/fpdfapi/parser/cpdf_stream.h"
 #include "core/fpdfapi/parser/fpdf_parser_decode.h"
 #include "core/fpdfapi/parser/fpdf_parser_utility.h"
+#include "third_party/base/stl_util.h"
 #include "third_party/skia_shared/SkFloatToDecimal.h"
 
 namespace {
@@ -77,7 +78,7 @@
 std::map<int32_t, std::unique_ptr<std::ostringstream>>
 CPDF_PageContentGenerator::GenerateModifiedStreams() {
   // Make sure default graphics are created.
-  (void)GetOrCreateDefaultGraphics();
+  GetOrCreateDefaultGraphics();
 
   // Figure out which streams are dirty.
   std::set<int32_t> all_dirty_streams;
@@ -92,7 +93,7 @@
 
   // Start regenerating dirty streams.
   std::map<int32_t, std::unique_ptr<std::ostringstream>> streams;
-  std::map<int32_t, bool> stream_is_empty;
+  std::set<int32_t> empty_streams;
 
   for (int32_t dirty_stream : all_dirty_streams) {
     std::unique_ptr<std::ostringstream> buf =
@@ -106,7 +107,7 @@
     ProcessDefaultGraphics(buf.get());
 
     streams[dirty_stream] = std::move(buf);
-    stream_is_empty[dirty_stream] = true;
+    empty_streams.insert(dirty_stream);
   }
 
   // Process the page objects, write into each dirty stream.
@@ -117,14 +118,14 @@
       continue;
 
     std::ostringstream* buf = it->second.get();
-    stream_is_empty[stream_index] = false;
+    empty_streams.erase(stream_index);
     ProcessPageObject(buf, pPageObj.Get());
   }
 
   // Finish dirty streams.
   for (int32_t dirty_stream : all_dirty_streams) {
     std::ostringstream* buf = streams[dirty_stream].get();
-    if (stream_is_empty[dirty_stream]) {
+    if (pdfium::ContainsKey(empty_streams, dirty_stream)) {
       // Clear to show that this stream needs to be deleted.
       buf->str("");
     } else {
diff --git a/testing/resources/hello_world_split_streams.in b/testing/resources/hello_world_split_streams.in
index c7a2935..667dd36 100644
--- a/testing/resources/hello_world_split_streams.in
+++ b/testing/resources/hello_world_split_streams.in
@@ -36,6 +36,7 @@
 >>
 endobj
 {{object 6 0}} <<
+  {{streamlen}}
 >>
 stream
 BT
@@ -49,6 +50,7 @@
 endstream
 endobj
 {{object 7 0}} <<
+  {{streamlen}}
 >>
 stream
 BT
diff --git a/testing/resources/hello_world_split_streams.pdf b/testing/resources/hello_world_split_streams.pdf
index 969fccf..824f003 100644
--- a/testing/resources/hello_world_split_streams.pdf
+++ b/testing/resources/hello_world_split_streams.pdf
@@ -37,6 +37,7 @@
 >>
 endobj
 6 0 obj <<
+  /Length 83
 >>
 stream
 BT
@@ -50,6 +51,7 @@
 endstream
 endobj
 7 0 obj <<
+  /Length 45
 >>
 stream
 BT
@@ -67,11 +69,11 @@
 0000000311 00000 n 
 0000000389 00000 n 
 0000000465 00000 n 
-0000000586 00000 n 
+0000000599 00000 n 
 trailer <<
   /Root 1 0 R
   /Size 8
 >>
 startxref
-669
+695
 %%EOF
