Chromium Code Reviews| Index: xfa/fgas/font/cfgas_fontmgr.cpp |
| diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp |
| index 1849441a1681616691237ef978291d802997a60f..224e01cc80bff6a01bcbeafbfc93007645dfae51 100644 |
| --- a/xfa/fgas/font/cfgas_fontmgr.cpp |
| +++ b/xfa/fgas/font/cfgas_fontmgr.cpp |
| @@ -575,13 +575,8 @@ CFGAS_FontMgr::CFGAS_FontMgr(CFX_FontSourceEnum_File* pFontEnum) |
| CFGAS_FontMgr::~CFGAS_FontMgr() { |
| for (int32_t i = 0; i < m_InstalledFonts.GetSize(); i++) |
| delete m_InstalledFonts[i]; |
| - FX_POSITION pos = m_Hash2CandidateList.GetStartPosition(); |
| - while (pos) { |
| - uint32_t dwHash; |
| - CFX_FontDescriptorInfos* pDescs; |
| - m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs); |
| - delete pDescs; |
| - } |
| + for (auto& pair : m_Hash2CandidateList) |
|
Tom Sepez
2017/01/05 21:31:46
NOTE: hang on, I'm going to make this unique_ptr.
|
| + delete pair.second; |
| m_Hash2Fonts.clear(); |
| } |
| @@ -645,12 +640,12 @@ CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByCodePage( |
| if (!pFontArray->empty()) |
| return (*pFontArray)[0]; |
| - CFX_FontDescriptorInfos* sortedFonts = nullptr; |
| - if (!m_Hash2CandidateList.Lookup(dwHash, sortedFonts)) { |
| + CFX_FontDescriptorInfos* sortedFonts = m_Hash2CandidateList[dwHash]; |
| + if (!sortedFonts) { |
| sortedFonts = new CFX_FontDescriptorInfos; |
| MatchFonts(*sortedFonts, wCodePage, dwFontStyles, |
| CFX_WideString(pszFontFamily), 0); |
| - m_Hash2CandidateList.SetAt(dwHash, sortedFonts); |
| + m_Hash2CandidateList[dwHash] = sortedFonts; |
| } |
| if (sortedFonts->GetSize() == 0) |
| return nullptr; |
| @@ -688,12 +683,12 @@ CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByUnicode( |
| if (VerifyUnicode((*pFonts)[i], wUnicode)) |
| return (*pFonts)[i]; |
| } |
| - CFX_FontDescriptorInfos* sortedFonts = nullptr; |
| - if (!m_Hash2CandidateList.Lookup(dwHash, sortedFonts)) { |
| + CFX_FontDescriptorInfos* sortedFonts = m_Hash2CandidateList[dwHash]; |
| + if (!sortedFonts) { |
| sortedFonts = new CFX_FontDescriptorInfos; |
| MatchFonts(*sortedFonts, wCodePage, dwFontStyles, |
| CFX_WideString(pszFontFamily), wUnicode); |
| - m_Hash2CandidateList.SetAt(dwHash, sortedFonts); |
| + m_Hash2CandidateList[dwHash] = sortedFonts; |
| } |
| for (int32_t i = 0; i < sortedFonts->GetSize(); ++i) { |
| CFX_FontDescriptor* pDesc = sortedFonts->GetAt(i).pFont; |