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 0bb8eab8122cfd13c629f846be23ff087fdf85f4..93e3486b7965dbc18e945f6f71dd015ce746fe04 100644 |
--- a/core/src/fxge/ge/fx_ge_text.cpp |
+++ b/core/src/fxge/ge/fx_ge_text.cpp |
@@ -1204,15 +1204,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) { |
@@ -1232,13 +1228,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; |
- if (pSizeCache == NULL) { |
- return NULL; |
- } |
- 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, |
@@ -1310,8 +1306,9 @@ const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap( |
bFontStyle, dest_width, anti_alias); |
} |
CFX_GlyphBitmap* pGlyphBitmap; |
- CFX_SizeGlyphCache* pSizeCache = NULL; |
- if (m_SizeMap.Lookup(FaceGlyphsKey, (void*&)pSizeCache)) { |
+ auto it = m_SizeMap.find(FaceGlyphsKey); |
+ if (it != m_SizeMap.end()) { |
+ CFX_SizeGlyphCache* pSizeCache = it->second; |
if (pSizeCache->m_GlyphMap.Lookup((void*)(uintptr_t)glyph_index, |
(void*&)pGlyphBitmap)) { |
return pGlyphBitmap; |
@@ -1326,8 +1323,8 @@ const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap( |
pGlyphBitmap = RenderGlyph_Nativetext(pFont, glyph_index, pMatrix, |
dest_width, anti_alias); |
if (pGlyphBitmap) { |
- pSizeCache = new CFX_SizeGlyphCache; |
- m_SizeMap.SetAt(FaceGlyphsKey, pSizeCache); |
+ CFX_SizeGlyphCache* pSizeCache = new CFX_SizeGlyphCache; |
+ m_SizeMap[FaceGlyphsKey] = pSizeCache; |
pSizeCache->m_GlyphMap.SetAt((void*)(uintptr_t)glyph_index, pGlyphBitmap); |
return pGlyphBitmap; |
} |