diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index cdc8a57..0f1bc14 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -84,8 +84,7 @@
     if (pPageObj->IsDirty())
       all_dirty_streams.insert(pPageObj->GetContentStream());
   }
-  const std::set<int32_t>& marked_dirty_streams =
-      m_pObjHolder->GetDirtyStreams();
+  std::set<int32_t> marked_dirty_streams = m_pObjHolder->TakeDirtyStreams();
   all_dirty_streams.insert(marked_dirty_streams.begin(),
                            marked_dirty_streams.end());
 
@@ -140,9 +139,6 @@
     }
   }
 
-  // Clear dirty streams in m_pObjHolder
-  m_pObjHolder->ClearDirtyStreams();
-
   return streams;
 }
 
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index 87e27ca..35a8acd 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -106,7 +106,7 @@
   // updated.
   // Since this is only called by CPDF_PageContentGenerator::GenerateContent(),
   // which cleans up the dirty streams first, this should always be true.
-  ASSERT(obj_holder_->GetDirtyStreams().empty());
+  ASSERT(!obj_holder_->HasDirtyStreams());
 
   if (contents_stream_) {
     // Only stream that can be removed is 0.
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
index 51499b0..73c3495 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
@@ -100,6 +100,12 @@
   return CFX_FloatRect(left, bottom, right, top);
 }
 
+std::set<int32_t> CPDF_PageObjectHolder::TakeDirtyStreams() {
+  auto dirty_streams = std::move(m_DirtyStreams);
+  m_DirtyStreams.clear();
+  return dirty_streams;
+}
+
 void CPDF_PageObjectHolder::LoadTransInfo() {
   if (!m_pDict)
     return;
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h
index 9194224..fbeaf88 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.h
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -98,8 +98,8 @@
   void AddImageMaskBoundingBox(const CFX_FloatRect& box);
   void Transform(const CFX_Matrix& matrix);
   CFX_FloatRect CalcBoundingBox() const;
-  const std::set<int32_t>& GetDirtyStreams() const { return m_DirtyStreams; }
-  void ClearDirtyStreams() { m_DirtyStreams.clear(); }
+  bool HasDirtyStreams() const { return !m_DirtyStreams.empty(); }
+  std::set<int32_t> TakeDirtyStreams();
 
   RetainPtr<CPDF_Dictionary> m_pPageResources;
   RetainPtr<CPDF_Dictionary> m_pResources;
