Handle inline font dicts in CBA_FontMap::AddFontToAnnotDict().

BUG=chromium:869171

Change-Id: I0176bcafa8a63396d916916b5e10b96573085d04
Reviewed-on: https://pdfium-review.googlesource.com/39414
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
index 08a3021..ae0cc80 100644
--- a/fpdfsdk/formfiller/cba_fontmap.cpp
+++ b/fpdfsdk/formfiller/cba_fontmap.cpp
@@ -6,6 +6,7 @@
 
 #include "fpdfsdk/formfiller/cba_fontmap.h"
 
+#include <memory>
 #include <utility>
 
 #include "core/fpdfapi/font/cpdf_font.h"
@@ -187,8 +188,11 @@
         "Font", pStreamResFontList->MakeReference(m_pDocument.Get()));
   }
   if (!pStreamResFontList->KeyExist(sAlias)) {
-    pStreamResFontList->SetFor(
-        sAlias, pFont->GetFontDict()->MakeReference(m_pDocument.Get()));
+    CPDF_Dictionary* pFontDict = pFont->GetFontDict();
+    std::unique_ptr<CPDF_Object> pObject =
+        pFontDict->IsInline() ? pFontDict->Clone()
+                              : pFontDict->MakeReference(m_pDocument.Get());
+    pStreamResFontList->SetFor(sAlias, std::move(pObject));
   }
 }