Pass retained arguments to CPVT_FontMap().

Bug: pdfium:1843
Change-Id: Id1867dbb5cb3298f8c4359297efb9e667a2e7f33
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96215
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfdoc/cpdf_generateap.cpp b/core/fpdfdoc/cpdf_generateap.cpp
index c05b141..d92d580 100644
--- a/core/fpdfdoc/cpdf_generateap.cpp
+++ b/core/fpdfdoc/cpdf_generateap.cpp
@@ -368,13 +368,13 @@
 
 ByteString GetPopupContentsString(CPDF_Document* pDoc,
                                   const CPDF_Dictionary& pAnnotDict,
-                                  const RetainPtr<CPDF_Font>& pDefFont,
+                                  RetainPtr<CPDF_Font> pDefFont,
                                   const ByteString& sFontName) {
   WideString swValue(pAnnotDict.GetUnicodeTextFor(pdfium::form_fields::kT));
   swValue += L'\n';
   swValue += pAnnotDict.GetUnicodeTextFor(pdfium::annotation::kContents);
 
-  CPVT_FontMap map(pDoc, nullptr, pDefFont, sFontName);
+  CPVT_FontMap map(pDoc, nullptr, std::move(pDefFont), sFontName);
   CPVT_VariableText::Provider prd(&map);
   CPVT_VariableText vt(&prd);
   vt.SetPlateRect(pAnnotDict.GetRectFor(pdfium::annotation::kRect));
@@ -774,7 +774,8 @@
   RetainPtr<CPDF_Dictionary> pResourceDict = GenerateResourceDict(
       pDoc, std::move(pExtGStateDict), std::move(pResourceFontDict));
 
-  sAppStream << GetPopupContentsString(pDoc, *pAnnotDict, pDefFont, sFontName);
+  sAppStream << GetPopupContentsString(pDoc, *pAnnotDict, std::move(pDefFont),
+                                       sFontName);
   GenerateAndSetAPDict(pDoc, pAnnotDict, &sAppStream, std::move(pResourceDict),
                        false /*IsTextMarkupAnnotation*/);
   return true;
@@ -1098,7 +1099,7 @@
   CPVT_FontMap map(
       pDoc,
       pStreamDict ? pStreamDict->GetMutableDictFor("Resources").Get() : nullptr,
-      pDefFont, font_name);
+      std::move(pDefFont), font_name);
   CPVT_VariableText::Provider prd(&map);
 
   switch (type) {
diff --git a/core/fpdfdoc/cpvt_fontmap.cpp b/core/fpdfdoc/cpvt_fontmap.cpp
index e02d854..cf9fb76 100644
--- a/core/fpdfdoc/cpvt_fontmap.cpp
+++ b/core/fpdfdoc/cpvt_fontmap.cpp
@@ -20,11 +20,11 @@
 
 CPVT_FontMap::CPVT_FontMap(CPDF_Document* pDoc,
                            CPDF_Dictionary* pResDict,
-                           const RetainPtr<CPDF_Font>& pDefFont,
+                           RetainPtr<CPDF_Font> pDefFont,
                            const ByteString& sDefFontAlias)
     : m_pDocument(pDoc),
       m_pResDict(pResDict),
-      m_pDefFont(pDefFont),
+      m_pDefFont(std::move(pDefFont)),
       m_sDefFontAlias(sDefFontAlias) {}
 
 CPVT_FontMap::~CPVT_FontMap() = default;
diff --git a/core/fpdfdoc/cpvt_fontmap.h b/core/fpdfdoc/cpvt_fontmap.h
index d308739..aae4a8d 100644
--- a/core/fpdfdoc/cpvt_fontmap.h
+++ b/core/fpdfdoc/cpvt_fontmap.h
@@ -22,7 +22,7 @@
  public:
   CPVT_FontMap(CPDF_Document* pDoc,
                CPDF_Dictionary* pResDict,
-               const RetainPtr<CPDF_Font>& pDefFont,
+               RetainPtr<CPDF_Font> pDefFont,
                const ByteString& sDefFontAlias);
   ~CPVT_FontMap() override;