From d8f45b3c9f6bc16c74e17b7269269193b0d94f18 Mon Sep 17 00:00:00 2001 From: dan sinclair Date: Mon, 13 Mar 2017 13:26:51 -0400 Subject: Replace discrete array with a map. There is one use of the discrete array, GFGAS_GEFont. This CL replaces that usage with a std::map and removes the fgas_util classes. Change-Id: Ic45812168e9487ebac08abaa131c58080a949d69 Reviewed-on: https://pdfium-review.googlesource.com/2953 Commit-Queue: dsinclair Reviewed-by: Tom Sepez --- xfa/fgas/font/cfgas_fontmgr.h | 4 ---- xfa/fgas/font/cfgas_gefont.cpp | 10 +++------- xfa/fgas/font/cfgas_gefont.h | 3 +-- 3 files changed, 4 insertions(+), 13 deletions(-) (limited to 'xfa/fgas/font') diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h index dffdb8a665..23ab523e78 100644 --- a/xfa/fgas/font/cfgas_fontmgr.h +++ b/xfa/fgas/font/cfgas_fontmgr.h @@ -21,10 +21,6 @@ #include "third_party/freetype/include/freetype/fttypes.h" #include "xfa/fgas/crt/fgas_stream.h" -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ -#include "xfa/fgas/crt/fgas_utils.h" -#endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ - #define FX_FONTSTYLE_Normal 0x00 #define FX_FONTSTYLE_FixedPitch 0x01 #define FX_FONTSTYLE_Serif 0x02 diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp index a57962d084..2d5a927cde 100644 --- a/xfa/fgas/font/cfgas_gefont.cpp +++ b/xfa/fgas/font/cfgas_gefont.cpp @@ -216,10 +216,6 @@ bool CFGAS_GEFont::InitFont() { if (!m_pFontEncoding) return false; } - if (!m_pCharWidthMap) { - m_pCharWidthMap = - pdfium::MakeUnique>(1024); - } return true; } @@ -273,8 +269,8 @@ bool CFGAS_GEFont::GetCharWidthInternal(FX_WCHAR wUnicode, int32_t& iWidth, bool bRecursive, bool bCharCode) { - ASSERT(m_pCharWidthMap); - iWidth = m_pCharWidthMap->GetAt(wUnicode, 0); + auto it = m_CharWidthMap.find(wUnicode); + iWidth = it != m_CharWidthMap.end() ? it->second : 0; if (iWidth == 65535) return false; @@ -299,7 +295,7 @@ bool CFGAS_GEFont::GetCharWidthInternal(FX_WCHAR wUnicode, iWidth = -1; } } - m_pCharWidthMap->SetAtGrow(wUnicode, iWidth); + m_CharWidthMap[wUnicode] = iWidth; return iWidth > 0; } diff --git a/xfa/fgas/font/cfgas_gefont.h b/xfa/fgas/font/cfgas_gefont.h index 2201721a93..0a8e7bad76 100644 --- a/xfa/fgas/font/cfgas_gefont.h +++ b/xfa/fgas/font/cfgas_gefont.h @@ -13,7 +13,6 @@ #include "core/fxcrt/cfx_retain_ptr.h" #include "core/fxcrt/fx_memory.h" -#include "xfa/fgas/crt/fgas_utils.h" #include "xfa/fgas/font/cfgas_fontmgr.h" #define FXFONT_SUBST_ITALIC 0x02 @@ -108,7 +107,7 @@ class CFGAS_GEFont : public CFX_Retainable { CFX_RetainPtr m_pStream; CFX_RetainPtr m_pFileRead; std::unique_ptr m_pFontEncoding; - std::unique_ptr> m_pCharWidthMap; + std::map m_CharWidthMap; std::map m_BBoxMap; CXFA_PDFFontMgr* m_pProvider; // not owned. std::vector> m_SubstFonts; -- cgit v1.2.3