Index: core/src/fxge/ge/fx_ge_linux.cpp |
diff --git a/core/src/fxge/ge/fx_ge_linux.cpp b/core/src/fxge/ge/fx_ge_linux.cpp |
index 8ff0a4e5b179834d9395092b578ddac72fa1b21a..9cdc89d330f2dc9e3e6ff5111b142a4a3efcf87d 100644 |
--- a/core/src/fxge/ge/fx_ge_linux.cpp |
+++ b/core/src/fxge/ge/fx_ge_linux.cpp |
@@ -105,7 +105,6 @@ void* CFX_LinuxFontInfo::MapFont(int weight, |
if (iBaseFont < 12) { |
return GetFont(face); |
} |
- void* p = NULL; |
FX_BOOL bCJK = TRUE; |
switch (charset) { |
case FXFONT_SHIFTJIS_CHARSET: { |
@@ -113,34 +112,36 @@ void* CFX_LinuxFontInfo::MapFont(int weight, |
if (index < 0) { |
break; |
} |
- for (int32_t i = 0; i < LINUX_GPNAMESIZE; i++) |
- if (m_FontList.Lookup(LinuxGpFontList[index].NameArr[i], p)) { |
- return p; |
+ for (int32_t i = 0; i < LINUX_GPNAMESIZE; i++) { |
+ auto it = m_FontList.find(LinuxGpFontList[index].NameArr[i]); |
+ if (it != m_FontList.end()) { |
+ return it->second; |
} |
+ } |
} break; |
case FXFONT_GB2312_CHARSET: { |
- static int32_t s_gbCount = |
- sizeof(g_LinuxGbFontList) / sizeof(const FX_CHAR*); |
- for (int32_t i = 0; i < s_gbCount; i++) |
- if (m_FontList.Lookup(g_LinuxGbFontList[i], p)) { |
- return p; |
+ for (int32_t i = 0; i < FX_ArraySize(g_LinuxGbFontList); ++i) { |
+ auto it = m_FontList.find(g_LinuxGbFontList[i]); |
+ if (it != m_FontList.end()) { |
+ return it->second; |
} |
+ } |
} break; |
case FXFONT_CHINESEBIG5_CHARSET: { |
- static int32_t s_b5Count = |
- sizeof(g_LinuxB5FontList) / sizeof(const FX_CHAR*); |
- for (int32_t i = 0; i < s_b5Count; i++) |
- if (m_FontList.Lookup(g_LinuxB5FontList[i], p)) { |
- return p; |
+ for (int32_t i = 0; i < FX_ArraySize(g_LinuxB5FontList); ++i) { |
+ auto it = m_FontList.find(g_LinuxB5FontList[i]); |
+ if (it != m_FontList.end()) { |
+ return it->second; |
} |
+ } |
} break; |
case FXFONT_HANGEUL_CHARSET: { |
- static int32_t s_hgCount = |
- sizeof(g_LinuxHGFontList) / sizeof(const FX_CHAR*); |
- for (int32_t i = 0; i < s_hgCount; i++) |
- if (m_FontList.Lookup(g_LinuxHGFontList[i], p)) { |
- return p; |
+ for (int32_t i = 0; i < FX_ArraySize(g_LinuxHGFontList); ++i) { |
+ auto it = m_FontList.find(g_LinuxHGFontList[i]); |
+ if (it != m_FontList.end()) { |
+ return it->second; |
} |
+ } |
} break; |
default: |
bCJK = FALSE; |
@@ -201,11 +202,9 @@ void* CFX_LinuxFontInfo::FindFont(int weight, |
CFX_FontFaceInfo* pFind = NULL; |
FX_DWORD charset_flag = _LinuxGetCharset(charset); |
int32_t iBestSimilar = 0; |
- FX_POSITION pos = m_FontList.GetStartPosition(); |
- while (pos) { |
- CFX_ByteString bsName; |
- CFX_FontFaceInfo* pFont = NULL; |
- m_FontList.GetNextAssoc(pos, bsName, (void*&)pFont); |
+ for (auto it = m_FontList.begin(); it != m_FontList.end(); ++it) { |
Lei Zhang
2015/08/15 00:35:44
Range-Based For Loop?
Tom Sepez
2015/08/17 20:15:26
Done.
|
+ CFX_ByteString bsName = it->first; |
Lei Zhang
2015/08/15 00:35:44
const ref?
Tom Sepez
2015/08/17 20:15:26
Why not.
|
+ CFX_FontFaceInfo* pFont = it->second; |
if (!(pFont->m_Charsets & charset_flag) && |
charset != FXFONT_DEFAULT_CHARSET) { |
continue; |