| Index: core/src/fxge/ge/fx_ge_text.cpp
|
| diff --git a/core/src/fxge/ge/fx_ge_text.cpp b/core/src/fxge/ge/fx_ge_text.cpp
|
| index 0d4e9d53590ef41389e9d5eb54a99fefdbc41193..1b839e0080f4423875bc415efba1e5700ee1e809 100644
|
| --- a/core/src/fxge/ge/fx_ge_text.cpp
|
| +++ b/core/src/fxge/ge/fx_ge_text.cpp
|
| @@ -1232,15 +1232,11 @@ CFX_FaceCache::CFX_FaceCache(FXFT_Face face) {
|
| m_Face = face;
|
| }
|
| CFX_FaceCache::~CFX_FaceCache() {
|
| - FX_POSITION pos = m_SizeMap.GetStartPosition();
|
| - CFX_ByteString Key;
|
| - CFX_SizeGlyphCache* pSizeCache = NULL;
|
| - while (pos) {
|
| - m_SizeMap.GetNextAssoc(pos, Key, (void*&)pSizeCache);
|
| - delete pSizeCache;
|
| + for (const auto& pair : m_SizeMap) {
|
| + delete pair.second;
|
| }
|
| - m_SizeMap.RemoveAll();
|
| - pos = m_PathMap.GetStartPosition();
|
| + m_SizeMap.clear();
|
| + FX_POSITION pos = m_PathMap.GetStartPosition();
|
| void* key1;
|
| CFX_PathData* pPath;
|
| while (pos) {
|
| @@ -1260,10 +1256,13 @@ CFX_GlyphBitmap* CFX_FaceCache::LookUpGlyphBitmap(
|
| FX_BOOL bFontStyle,
|
| int dest_width,
|
| int anti_alias) {
|
| - CFX_SizeGlyphCache* pSizeCache = NULL;
|
| - if (!m_SizeMap.Lookup(FaceGlyphsKey, (void*&)pSizeCache)) {
|
| + CFX_SizeGlyphCache* pSizeCache;
|
| + auto it = m_SizeMap.find(FaceGlyphsKey);
|
| + if (it == m_SizeMap.end()) {
|
| pSizeCache = new CFX_SizeGlyphCache;
|
| - m_SizeMap.SetAt(FaceGlyphsKey, pSizeCache);
|
| + m_SizeMap[FaceGlyphsKey] = pSizeCache;
|
| + } else {
|
| + pSizeCache = it->second;
|
| }
|
| CFX_GlyphBitmap* pGlyphBitmap = NULL;
|
| if (pSizeCache->m_GlyphMap.Lookup((void*)(uintptr_t)glyph_index,
|
|
|