| 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;
|
| }
|
|
|