diff --git a/core/fxcodec/progressive_decoder.cpp b/core/fxcodec/progressive_decoder.cpp
index c5f0109..d79dd1b 100644
--- a/core/fxcodec/progressive_decoder.cpp
+++ b/core/fxcodec/progressive_decoder.cpp
@@ -1491,7 +1491,7 @@
 }
 
 FXCODEC_STATUS ProgressiveDecoder::LoadImageInfo(
-    const RetainPtr<IFX_SeekableReadStream>& pFile,
+    RetainPtr<IFX_SeekableReadStream> pFile,
     FXCODEC_IMAGE_TYPE imageType,
     CFX_DIBAttribute* pAttribute,
     bool bSkipImageTypeCheck) {
@@ -1506,12 +1506,11 @@
     default:
       break;
   }
-  if (!pFile) {
+  m_pFile = std::move(pFile);
+  if (!m_pFile) {
     m_status = FXCODEC_STATUS::kError;
-    m_pFile = nullptr;
     return m_status;
   }
-  m_pFile = pFile;
   m_offSet = 0;
   m_SrcWidth = m_SrcHeight = 0;
   m_SrcComponents = m_SrcBPC = 0;
diff --git a/core/fxcodec/progressive_decoder.h b/core/fxcodec/progressive_decoder.h
index 9a9bbc8..c830900 100644
--- a/core/fxcodec/progressive_decoder.h
+++ b/core/fxcodec/progressive_decoder.h
@@ -69,7 +69,7 @@
   ProgressiveDecoder();
   virtual ~ProgressiveDecoder();
 
-  FXCODEC_STATUS LoadImageInfo(const RetainPtr<IFX_SeekableReadStream>& pFile,
+  FXCODEC_STATUS LoadImageInfo(RetainPtr<IFX_SeekableReadStream> pFile,
                                FXCODEC_IMAGE_TYPE imageType,
                                CFX_DIBAttribute* pAttribute,
                                bool bSkipImageTypeCheck);
diff --git a/core/fxcodec/progressive_decoder_unittest.cpp b/core/fxcodec/progressive_decoder_unittest.cpp
index bce2ac3..cdc0ae1 100644
--- a/core/fxcodec/progressive_decoder_unittest.cpp
+++ b/core/fxcodec/progressive_decoder_unittest.cpp
@@ -72,7 +72,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -105,7 +105,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -136,7 +136,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -168,7 +168,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -200,7 +200,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -232,7 +232,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -271,7 +271,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlyVectorStream>(std::move(input));
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_BMP, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_BMP, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(kWidth, decoder.GetWidth());
@@ -315,7 +315,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_GIF, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_GIF, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -346,7 +346,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_GIF, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_GIF, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -380,7 +380,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_GIF, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_GIF, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(1, decoder.GetWidth());
@@ -411,7 +411,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_GIF, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_GIF, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(4, decoder.GetWidth());
@@ -449,7 +449,7 @@
   auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(kInput);
   CFX_DIBAttribute attr;
   FXCODEC_STATUS status =
-      decoder.LoadImageInfo(source, FXCODEC_IMAGE_GIF, &attr, true);
+      decoder.LoadImageInfo(std::move(source), FXCODEC_IMAGE_GIF, &attr, true);
   ASSERT_EQ(FXCODEC_STATUS::kFrameReady, status);
 
   ASSERT_EQ(4, decoder.GetWidth());
diff --git a/testing/fuzzers/xfa_codec_fuzzer.h b/testing/fuzzers/xfa_codec_fuzzer.h
index 562d183..b14b7d7 100644
--- a/testing/fuzzers/xfa_codec_fuzzer.h
+++ b/testing/fuzzers/xfa_codec_fuzzer.h
@@ -6,6 +6,7 @@
 #define TESTING_FUZZERS_XFA_CODEC_FUZZER_H_
 
 #include <memory>
+#include <utility>
 
 #include "core/fxcodec/fx_codec.h"
 #include "core/fxcodec/progressive_decoder.h"
@@ -26,7 +27,8 @@
     auto source = pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
         pdfium::make_span(data, size));
     CFX_DIBAttribute attr;
-    FXCODEC_STATUS status = decoder->LoadImageInfo(source, type, &attr, true);
+    FXCODEC_STATUS status =
+        decoder->LoadImageInfo(std::move(source), type, &attr, true);
     if (status != FXCODEC_STATUS::kFrameReady)
       return 0;
 
diff --git a/xfa/fxfa/cxfa_ffdoc.cpp b/xfa/fxfa/cxfa_ffdoc.cpp
index 750b516..0c424eb 100644
--- a/xfa/fxfa/cxfa_ffdoc.cpp
+++ b/xfa/fxfa/cxfa_ffdoc.cpp
@@ -313,9 +313,8 @@
 
   auto pImageFileRead =
       pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pAcc->GetSpan());
-
   RetainPtr<CFX_DIBitmap> pDibSource = XFA_LoadImageFromBuffer(
-      pImageFileRead, FXCODEC_IMAGE_UNKNOWN, iImageXDpi, iImageYDpi);
+      std::move(pImageFileRead), FXCODEC_IMAGE_UNKNOWN, iImageXDpi, iImageYDpi);
   m_HashToDibDpiMap[dwHash] = {pDibSource, iImageXDpi, iImageYDpi};
   return pDibSource;
 }
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index 09ddb32..aa30e19 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -144,14 +144,15 @@
 }
 
 RetainPtr<CFX_DIBitmap> XFA_LoadImageFromBuffer(
-    const RetainPtr<IFX_SeekableReadStream>& pImageFileRead,
+    RetainPtr<IFX_SeekableReadStream> pImageFileRead,
     FXCODEC_IMAGE_TYPE type,
     int32_t& iImageXDpi,
     int32_t& iImageYDpi) {
   auto pProgressiveDecoder = std::make_unique<ProgressiveDecoder>();
 
   CFX_DIBAttribute dibAttr;
-  pProgressiveDecoder->LoadImageInfo(pImageFileRead, type, &dibAttr, false);
+  pProgressiveDecoder->LoadImageInfo(std::move(pImageFileRead), type, &dibAttr,
+                                     false);
   switch (dibAttr.m_wDPIUnit) {
     case CFX_DIBAttribute::kResUnitCentimeter:
       dibAttr.m_nXDPI = static_cast<int32_t>(dibAttr.m_nXDPI * 2.54f);
diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h
index 7e66ed7..e11bca7 100644
--- a/xfa/fxfa/cxfa_ffwidget.h
+++ b/xfa/fxfa/cxfa_ffwidget.h
@@ -55,7 +55,7 @@
                    XFA_AttributeValue iVertAlign = XFA_AttributeValue::Top);
 
 RetainPtr<CFX_DIBitmap> XFA_LoadImageFromBuffer(
-    const RetainPtr<IFX_SeekableReadStream>& pImageFileRead,
+    RetainPtr<IFX_SeekableReadStream> pImageFileRead,
     FXCODEC_IMAGE_TYPE type,
     int32_t& iImageXDpi,
     int32_t& iImageYDpi);
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 1ad410e..1aac60f 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -511,9 +511,8 @@
     return nullptr;
 
   bNameImage = false;
-  RetainPtr<CFX_DIBitmap> pBitmap =
-      XFA_LoadImageFromBuffer(pImageFileRead, type, iImageXDpi, iImageYDpi);
-  return pBitmap;
+  return XFA_LoadImageFromBuffer(std::move(pImageFileRead), type, iImageXDpi,
+                                 iImageYDpi);
 }
 
 bool SplitDateTime(const WideString& wsDateTime,
