Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Unified Diff: core/fxge/ge/fx_ge_linux.cpp

Issue 2218433002: Clean up fx_ge_linux.cpp a little. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fxge/ge/fx_ge_linux.cpp
diff --git a/core/fxge/ge/fx_ge_linux.cpp b/core/fxge/ge/fx_ge_linux.cpp
index 6406d825708272c2cb1302565478f59fd0f90264..d5a1d956cd60233e7c60479ebddac989a209c24b 100644
--- a/core/fxge/ge/fx_ge_linux.cpp
+++ b/core/fxge/ge/fx_ge_linux.cpp
@@ -8,12 +8,16 @@
#include "core/fxge/agg/fx_agg_driver.h"
#endif
+#include <memory>
+
#include "core/fxge/ge/cfx_folderfontinfo.h"
#include "core/fxge/ge/fx_text_int.h"
#include "core/fxge/include/fx_ge.h"
#include "core/fxge/include/ifx_systemfontinfo.h"
#if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
+namespace {
+
class CFX_LinuxFontInfo : public CFX_FolderFontInfo {
public:
void* MapFont(int weight,
@@ -24,10 +28,12 @@ class CFX_LinuxFontInfo : public CFX_FolderFontInfo {
int& iExact) override;
FX_BOOL ParseFontCfg(const char** pUserPaths);
};
-#define LINUX_GPNAMESIZE 6
-static const struct {
- const FX_CHAR* NameArr[LINUX_GPNAMESIZE];
-} LinuxGpFontList[] = {
+
+const size_t kLinuxGpNameSize = 6;
+
+const struct {
+ const FX_CHAR* NameArr[kLinuxGpNameSize];
Tom Sepez 2016/08/04 19:20:18 drive-by: wouldn't a 2D array of char* be simpler
Lei Zhang 2016/08/04 19:22:25 Probably. Who wants to send the next CL? :)
+} g_LinuxGpFontList[] = {
{{"TakaoPGothic", "VL PGothic", "IPAPGothic", "VL Gothic", "Kochi Gothic",
"VL Gothic regular"}},
{{"TakaoGothic", "VL Gothic", "IPAGothic", "Kochi Gothic", nullptr,
@@ -37,18 +43,22 @@ static const struct {
{{"TakaoMincho", "IPAMincho", "VL Gothic", "Kochi Mincho", nullptr,
"VL Gothic regular"}},
};
-static const FX_CHAR* const g_LinuxGbFontList[] = {
+
+const FX_CHAR* const g_LinuxGbFontList[] = {
"AR PL UMing CN Light", "WenQuanYi Micro Hei", "AR PL UKai CN",
};
-static const FX_CHAR* const g_LinuxB5FontList[] = {
+
+const FX_CHAR* const g_LinuxB5FontList[] = {
"AR PL UMing TW Light", "WenQuanYi Micro Hei", "AR PL UKai TW",
};
-static const FX_CHAR* const g_LinuxHGFontList[] = {
+
+const FX_CHAR* const g_LinuxHGFontList[] = {
"UnDotum",
};
-static int32_t GetJapanesePreference(const FX_CHAR* facearr,
- int weight,
- int picth_family) {
+
+size_t GetJapanesePreference(const FX_CHAR* facearr,
+ int weight,
+ int pitch_family) {
CFX_ByteString face = facearr;
if (face.Find("Gothic") >= 0 ||
face.Find("\x83\x53\x83\x56\x83\x62\x83\x4e") >= 0) {
@@ -65,11 +75,14 @@ static int32_t GetJapanesePreference(const FX_CHAR* facearr,
}
return 3;
}
- if (!(picth_family & FXFONT_FF_ROMAN) && weight > 400) {
+ if (!(pitch_family & FXFONT_FF_ROMAN) && weight > 400) {
return 0;
}
return 2;
}
+
+} // namespace
+
void* CFX_LinuxFontInfo::MapFont(int weight,
FX_BOOL bItalic,
int charset,
@@ -84,17 +97,16 @@ void* CFX_LinuxFontInfo::MapFont(int weight,
FX_BOOL bCJK = TRUE;
switch (charset) {
case FXFONT_SHIFTJIS_CHARSET: {
- int32_t index = GetJapanesePreference(cstr_face, weight, pitch_family);
- if (index < 0) {
- break;
- }
- for (int32_t i = 0; i < LINUX_GPNAMESIZE; i++) {
- auto it = m_FontList.find(LinuxGpFontList[index].NameArr[i]);
+ size_t index = GetJapanesePreference(cstr_face, weight, pitch_family);
+ ASSERT(index < FX_ArraySize(g_LinuxGpFontList));
npm_g 2016/08/04 17:53:16 Maybe also include the condition index >= 0
Lei Zhang 2016/08/04 17:59:26 size_t is unsigned, always >= 0.
+ for (size_t i = 0; i < kLinuxGpNameSize; i++) {
+ auto it = m_FontList.find(g_LinuxGpFontList[index].NameArr[i]);
if (it != m_FontList.end()) {
return it->second;
}
}
- } break;
+ break;
+ }
case FXFONT_GB2312_CHARSET: {
for (size_t i = 0; i < FX_ArraySize(g_LinuxGbFontList); ++i) {
auto it = m_FontList.find(g_LinuxGbFontList[i]);
@@ -102,7 +114,8 @@ void* CFX_LinuxFontInfo::MapFont(int weight,
return it->second;
}
}
- } break;
+ break;
+ }
case FXFONT_CHINESEBIG5_CHARSET: {
for (size_t i = 0; i < FX_ArraySize(g_LinuxB5FontList); ++i) {
auto it = m_FontList.find(g_LinuxB5FontList[i]);
@@ -110,7 +123,8 @@ void* CFX_LinuxFontInfo::MapFont(int weight,
return it->second;
}
}
- } break;
+ break;
+ }
case FXFONT_HANGEUL_CHARSET: {
for (size_t i = 0; i < FX_ArraySize(g_LinuxHGFontList); ++i) {
auto it = m_FontList.find(g_LinuxHGFontList[i]);
@@ -118,7 +132,8 @@ void* CFX_LinuxFontInfo::MapFont(int weight,
return it->second;
}
}
- } break;
+ break;
+ }
default:
bCJK = FALSE;
break;
@@ -151,5 +166,6 @@ void CFX_GEModule::InitPlatform() {
m_pFontMgr->SetSystemFontInfo(
IFX_SystemFontInfo::CreateDefault(m_pUserFontPaths));
}
+
void CFX_GEModule::DestroyPlatform() {}
#endif // _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698