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));
}
}