diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp
index 674f0ba..1329d28 100644
--- a/core/fpdfapi/parser/cpdf_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_stream.cpp
@@ -199,7 +199,7 @@
     data = encrypted_data;
   }
 
-  size_t size = data.size();
+  const size_t size = data.size();
   if (static_cast<size_t>(encoder.GetDict()->GetIntegerFor("Length")) != size) {
     encoder.CloneDict();
     encoder.GetClonedDict()->SetNewFor<CPDF_Number>("Length",
@@ -212,13 +212,10 @@
   if (!archive->WriteString("stream\r\n"))
     return false;
 
-  if (!archive->WriteBlock(data.data(), size))
+  if (!archive->WriteSpan(data))
     return false;
 
-  if (!archive->WriteString("\r\nendstream"))
-    return false;
-
-  return true;
+  return archive->WriteString("\r\nendstream");
 }
 
 const uint8_t* CPDF_Stream::GetInMemoryRawData() const {
diff --git a/core/fxcrt/fx_stream.cpp b/core/fxcrt/fx_stream.cpp
index e7c42ce..7a3e876 100644
--- a/core/fxcrt/fx_stream.cpp
+++ b/core/fxcrt/fx_stream.cpp
@@ -46,6 +46,10 @@
 
 }  // namespace
 
+bool IFX_WriteStream::WriteSpan(pdfium::span<const uint8_t> data) {
+  return WriteBlock(data.data(), data.size());
+}
+
 bool IFX_WriteStream::WriteString(ByteStringView str) {
   return WriteBlock(str.unterminated_c_str(), str.GetLength());
 }
diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h
index 0154b978..24dc597 100644
--- a/core/fxcrt/fx_stream.h
+++ b/core/fxcrt/fx_stream.h
@@ -13,6 +13,7 @@
 #include "core/fxcrt/bytestring.h"
 #include "core/fxcrt/fx_types.h"
 #include "core/fxcrt/retain_ptr.h"
+#include "third_party/base/span.h"
 
 class IFX_WriteStream {
  public:
@@ -20,6 +21,7 @@
   // only time when `pData` can be null.
   virtual bool WriteBlock(const void* pData, size_t size) = 0;
 
+  bool WriteSpan(pdfium::span<const uint8_t> data);
   bool WriteString(ByteStringView str);
   bool WriteByte(uint8_t byte);
   bool WriteDWord(uint32_t i);
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index 0143f6c..0d048d3 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -505,8 +505,7 @@
       }
       auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(std::move(pStream));
       pAcc->LoadAllDataFiltered();
-      pdfium::span<const uint8_t> span = pAcc->GetSpan();
-      fileWrite->WriteBlock(span.data(), span.size());
+      fileWrite->WriteSpan(pAcc->GetSpan());
     }
   }
   fileWrite->Flush();
