diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 4ced722..9afda3f 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -180,9 +180,7 @@
     const ByteString& bsType) const {
   DCHECK(pResource);
   if (!m_pObjHolder->GetResources()) {
-    // TODO(tsepez): pass retained argument.
-    m_pObjHolder->SetResources(
-        m_pDocument->NewIndirect<CPDF_Dictionary>().Get());
+    m_pObjHolder->SetResources(m_pDocument->NewIndirect<CPDF_Dictionary>());
     m_pObjHolder->GetMutableDict()->SetNewFor<CPDF_Reference>(
         "Resources", m_pDocument.Get(),
         m_pObjHolder->GetResources()->GetObjNum());
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index e2305ce..a940a2a 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -49,10 +49,10 @@
 
 CPDF_PageContentManager::~CPDF_PageContentManager() = default;
 
-// TODO(tsepez): return retained reference.
-CPDF_Stream* CPDF_PageContentManager::GetStreamByIndex(size_t stream_index) {
+RetainPtr<CPDF_Stream> CPDF_PageContentManager::GetStreamByIndex(
+    size_t stream_index) {
   if (contents_stream_)
-    return stream_index == 0 ? contents_stream_.Get() : nullptr;
+    return stream_index == 0 ? contents_stream_ : nullptr;
 
   if (!contents_array_)
     return nullptr;
@@ -62,7 +62,7 @@
   if (!stream_reference)
     return nullptr;
 
-  return stream_reference->GetMutableDirect()->AsMutableStream();
+  return ToStream(stream_reference->GetMutableDirect());
 }
 
 size_t CPDF_PageContentManager::AddStream(fxcrt::ostringstream* buf) {
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.h b/core/fpdfapi/edit/cpdf_pagecontentmanager.h
index bbc8f2b..60e2146 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.h
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.h
@@ -22,8 +22,8 @@
   ~CPDF_PageContentManager();
 
   // Gets the Content stream at a given index. If Contents is a single stream
-  // rather than an array, it is considered to be at index 0.
-  CPDF_Stream* GetStreamByIndex(size_t stream_index);
+  // rather than an array, it is retrievable at index 0.
+  RetainPtr<CPDF_Stream> GetStreamByIndex(size_t stream_index);
 
   // Adds a new Content stream. Its index in the array will be returned, or 0
   // if Contents is not an array, but only a single stream.
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h
index 3453107..231e150 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.h
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -14,6 +14,7 @@
 #include <map>
 #include <memory>
 #include <set>
+#include <utility>
 #include <vector>
 
 #include "core/fpdfapi/page/cpdf_transparency.h"
@@ -72,7 +73,9 @@
   RetainPtr<CPDF_Dictionary> GetMutableDict() { return m_pDict; }
   const CPDF_Dictionary* GetResources() const { return m_pResources.Get(); }
   RetainPtr<CPDF_Dictionary> GetMutableResources() { return m_pResources; }
-  void SetResources(CPDF_Dictionary* pDict) { m_pResources.Reset(pDict); }
+  void SetResources(RetainPtr<CPDF_Dictionary> pDict) {
+    m_pResources = std::move(pDict);
+  }
   const CPDF_Dictionary* GetPageResources() const {
     return m_pPageResources.Get();
   }
