Chromium Code Reviews| Index: core/src/fxge/android/fpf_skiafontmgr.cpp |
| diff --git a/core/src/fxge/android/fpf_skiafontmgr.cpp b/core/src/fxge/android/fpf_skiafontmgr.cpp |
| index 9dbe35d0e515b082dbde54238128e7130993b07b..73233f3500c39b8d9ed3044f392ebf8dec2c8c8c 100644 |
| --- a/core/src/fxge/android/fpf_skiafontmgr.cpp |
| +++ b/core/src/fxge/android/fpf_skiafontmgr.cpp |
| @@ -219,14 +219,11 @@ CFPF_SkiaFontMgr::CFPF_SkiaFontMgr() : m_bLoaded(FALSE), m_FTLibrary(NULL) {} |
| CFPF_SkiaFontMgr::~CFPF_SkiaFontMgr() { |
| void* pkey = NULL; |
| CFPF_SkiaFont* pValue = NULL; |
| - FX_POSITION pos = m_FamilyFonts.GetStartPosition(); |
| - while (pos) { |
| - m_FamilyFonts.GetNextAssoc(pos, pkey, (void*&)pValue); |
| - if (pValue) { |
| - pValue->Release(); |
| - } |
| + for (const auto& pair : m_FamilyFonts) { |
| + if (pair.second) |
| + pair.second->Release(); |
| } |
| - m_FamilyFonts.RemoveAll(); |
| + m_FamilyFonts.clear(); |
| for (int32_t i = m_FontFaces.GetUpperBound(); i >= 0; i--) { |
| CFPF_SkiaFontDescriptor* pFont = |
| (CFPF_SkiaFontDescriptor*)m_FontFaces.ElementAt(i); |
| @@ -259,12 +256,11 @@ IFPF_Font* CFPF_SkiaFontMgr::CreateFont(const CFX_ByteStringC& bsFamilyname, |
| FX_DWORD dwStyle, |
| FX_DWORD dwMatch) { |
| FX_DWORD dwHash = FPF_SKIAGetFamilyHash(bsFamilyname, dwStyle, uCharset); |
| + auto it = m_FamilyFonts.find(dwHash); |
| + if (it != m_FamilyFonts.end() && it->second) |
| + return it->second->Retain(); |
| + |
| IFPF_Font* pFont = NULL; |
|
Oliver Chang
2016/01/20 21:34:24
nit: I don't think this |pFont| variable is needed
Tom Sepez
2016/01/20 22:18:30
Done.
|
| - if (m_FamilyFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) { |
| - if (pFont) { |
| - return pFont->Retain(); |
| - } |
| - } |
| FX_DWORD dwFaceName = FPF_SKIANormalizeFontName(bsFamilyname); |
| FX_DWORD dwSubst = FPF_SkiaGetSubstFont(dwFaceName); |
| FX_DWORD dwSubstSans = FPF_SkiaGetSansFont(dwFaceName); |
| @@ -335,7 +331,7 @@ IFPF_Font* CFPF_SkiaFontMgr::CreateFont(const CFX_ByteStringC& bsFamilyname, |
| (CFPF_SkiaFontDescriptor*)m_FontFaces.ElementAt(nItem); |
| CFPF_SkiaFont* pFont = new CFPF_SkiaFont; |
| if (pFont->InitFont(this, pFontDes, bsFamilyname, dwStyle, uCharset)) { |
| - m_FamilyFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont); |
| + m_FamilyFonts[dwHash] = pFont; |
| return pFont->Retain(); |
| } |
| pFont->Release(); |