summaryrefslogtreecommitdiff
path: root/fpdfsdk/formfiller/cba_fontmap.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-04-03 19:10:51 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-03 19:10:51 +0000
commit4c22dd5690cdec725389055bb7c07c300a4b6fe4 (patch)
tree2b4ead266695d206172fbf11c63274286c496496 /fpdfsdk/formfiller/cba_fontmap.cpp
parent232b918d1f0faec230652f4097b834257a7dbb27 (diff)
downloadpdfium-4c22dd5690cdec725389055bb7c07c300a4b6fe4.tar.xz
Use Optional to determine if appearance stream as fontchromium/3388
This CL changes the CPDF_DefaultAppearance code to remove the HasFont method and change GetFont to return an Optional. This forces all the call sites to verify a font was returned correctly and removes the need for the duplicate appearance stream parsing. Bug: chromium:827430 Change-Id: If09e0a7d3f7dd63ad77b97a5a388127e4a02da61 Reviewed-on: https://pdfium-review.googlesource.com/29610 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'fpdfsdk/formfiller/cba_fontmap.cpp')
-rw-r--r--fpdfsdk/formfiller/cba_fontmap.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
index b7e14b4636..0daa0cd5ac 100644
--- a/fpdfsdk/formfiller/cba_fontmap.cpp
+++ b/fpdfsdk/formfiller/cba_fontmap.cpp
@@ -217,12 +217,14 @@ CPDF_Font* CBA_FontMap::GetAnnotDefaultFont(ByteString* sAlias) {
return nullptr;
CPDF_DefaultAppearance appearance(sDA);
- ASSERT(appearance.HasFont());
-
float font_size;
- ByteString sDecodedFontName =
- PDF_NameDecode(appearance.GetFont(&font_size).AsStringView());
- *sAlias = sDecodedFontName.Right(sDecodedFontName.GetLength() - 1);
+ Optional<ByteString> font = appearance.GetFont(&font_size);
+ if (font) {
+ ByteString sDecodedFontName = PDF_NameDecode(font->AsStringView());
+ *sAlias = sDecodedFontName.Right(sDecodedFontName.GetLength() - 1);
+ } else {
+ *sAlias = ByteString();
+ }
CPDF_Dictionary* pFontDict = nullptr;
if (CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDictFor("AP")) {