From 4c22dd5690cdec725389055bb7c07c300a4b6fe4 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 3 Apr 2018 19:10:51 +0000 Subject: Use Optional to determine if appearance stream as font 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 Reviewed-by: Ryan Harrison --- fpdfsdk/formfiller/cba_fontmap.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'fpdfsdk/formfiller/cba_fontmap.cpp') 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 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")) { -- cgit v1.2.3