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

Side by Side Diff: core/src/fxge/ge/fx_ge_fontmap.cpp

Issue 1528763003: Merge to XFA: Get rid of most instance of 'foo == NULL' (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « core/src/fxge/ge/fx_ge_font.cpp ('k') | core/src/fxge/ge/fx_ge_path.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "core/include/fxge/fx_freetype.h" 9 #include "core/include/fxge/fx_freetype.h"
10 #include "core/include/fxge/fx_ge.h" 10 #include "core/include/fxge/fx_ge.h"
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 fontName = "FrenchScriptMT"; 308 fontName = "FrenchScriptMT";
309 } else if (fontName.Find("FreeStyle") >= 0) { 309 } else if (fontName.Find("FreeStyle") >= 0) {
310 fontName = "FreeStyleScript"; 310 fontName = "FreeStyleScript";
311 } 311 }
312 return fontName; 312 return fontName;
313 } 313 }
314 AltFontFamily* found = (AltFontFamily*)FXSYS_bsearch( 314 AltFontFamily* found = (AltFontFamily*)FXSYS_bsearch(
315 fontName.c_str(), g_AltFontFamilies, 315 fontName.c_str(), g_AltFontFamilies,
316 sizeof g_AltFontFamilies / sizeof(AltFontFamily), sizeof(AltFontFamily), 316 sizeof g_AltFontFamilies / sizeof(AltFontFamily), sizeof(AltFontFamily),
317 CompareFontFamilyString); 317 CompareFontFamilyString);
318 if (found == NULL) { 318 return found ? CFX_ByteString(found->m_pFontFamily) : fontName;
319 return fontName;
320 }
321 return found->m_pFontFamily;
322 } 319 }
323 320
324 CFX_ByteString ParseStyle(const FX_CHAR* pStyle, int iLen, int iIndex) { 321 CFX_ByteString ParseStyle(const FX_CHAR* pStyle, int iLen, int iIndex) {
325 CFX_ByteTextBuf buf; 322 CFX_ByteTextBuf buf;
326 if (!iLen || iLen <= iIndex) { 323 if (!iLen || iLen <= iIndex) {
327 return buf.GetByteString(); 324 return buf.GetByteString();
328 } 325 }
329 while (iIndex < iLen) { 326 while (iIndex < iLen) {
330 if (pStyle[iIndex] == ',') { 327 if (pStyle[iIndex] == ',') {
331 break; 328 break;
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 FXFT_Done_Face(m_MMFaces[0]); 669 FXFT_Done_Face(m_MMFaces[0]);
673 } 670 }
674 if (m_MMFaces[1]) { 671 if (m_MMFaces[1]) {
675 FXFT_Done_Face(m_MMFaces[1]); 672 FXFT_Done_Face(m_MMFaces[1]);
676 } 673 }
677 if (m_pFontInfo) { 674 if (m_pFontInfo) {
678 m_pFontInfo->Release(); 675 m_pFontInfo->Release();
679 } 676 }
680 } 677 }
681 void CFX_FontMapper::SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo) { 678 void CFX_FontMapper::SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo) {
682 if (pFontInfo == NULL) { 679 if (!pFontInfo) {
683 return; 680 return;
684 } 681 }
685 if (m_pFontInfo) { 682 if (m_pFontInfo) {
686 m_pFontInfo->Release(); 683 m_pFontInfo->Release();
687 } 684 }
688 m_pFontInfo = pFontInfo; 685 m_pFontInfo = pFontInfo;
689 } 686 }
690 687
691 CFX_ByteString GetNameFromTT(const uint8_t* name_table, FX_DWORD name_id) { 688 CFX_ByteString GetNameFromTT(const uint8_t* name_table, FX_DWORD name_id) {
692 const uint8_t* ptr = name_table + 2; 689 const uint8_t* ptr = name_table + 2;
(...skipping 21 matching lines...) Expand all
714 return CFX_ByteString(); 711 return CFX_ByteString();
715 712
716 std::vector<uint8_t> buffer(size); 713 std::vector<uint8_t> buffer(size);
717 uint8_t* buffer_ptr = pdfium::vector_as_array(&buffer); 714 uint8_t* buffer_ptr = pdfium::vector_as_array(&buffer);
718 FX_DWORD bytes_read = 715 FX_DWORD bytes_read =
719 m_pFontInfo->GetFontData(hFont, kTableNAME, buffer_ptr, size); 716 m_pFontInfo->GetFontData(hFont, kTableNAME, buffer_ptr, size);
720 return (bytes_read == size) ? GetNameFromTT(buffer_ptr, 6) : CFX_ByteString(); 717 return (bytes_read == size) ? GetNameFromTT(buffer_ptr, 6) : CFX_ByteString();
721 } 718 }
722 719
723 void CFX_FontMapper::AddInstalledFont(const CFX_ByteString& name, int charset) { 720 void CFX_FontMapper::AddInstalledFont(const CFX_ByteString& name, int charset) {
724 if (m_pFontInfo == NULL) { 721 if (!m_pFontInfo) {
725 return; 722 return;
726 } 723 }
727 if (m_CharsetArray.Find((FX_DWORD)charset) == -1) { 724 if (m_CharsetArray.Find((FX_DWORD)charset) == -1) {
728 m_CharsetArray.Add((FX_DWORD)charset); 725 m_CharsetArray.Add((FX_DWORD)charset);
729 m_FaceArray.Add(name); 726 m_FaceArray.Add(name);
730 } 727 }
731 if (name == m_LastFamily) { 728 if (name == m_LastFamily) {
732 return; 729 return;
733 } 730 }
734 const uint8_t* ptr = name; 731 const uint8_t* ptr = name;
735 FX_BOOL bLocalized = FALSE; 732 FX_BOOL bLocalized = FALSE;
736 for (int i = 0; i < name.GetLength(); i++) 733 for (int i = 0; i < name.GetLength(); i++)
737 if (ptr[i] > 0x80) { 734 if (ptr[i] > 0x80) {
738 bLocalized = TRUE; 735 bLocalized = TRUE;
739 break; 736 break;
740 } 737 }
741 if (bLocalized) { 738 if (bLocalized) {
742 void* hFont = m_pFontInfo->GetFont(name); 739 void* hFont = m_pFontInfo->GetFont(name);
743 if (hFont == NULL) { 740 if (!hFont) {
744 int iExact; 741 int iExact;
745 hFont = 742 hFont =
746 m_pFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, name, iExact); 743 m_pFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, name, iExact);
747 if (hFont == NULL) { 744 if (!hFont) {
748 return; 745 return;
749 } 746 }
750 } 747 }
751 CFX_ByteString new_name = GetPSNameFromTT(hFont); 748 CFX_ByteString new_name = GetPSNameFromTT(hFont);
752 if (!new_name.IsEmpty()) { 749 if (!new_name.IsEmpty()) {
753 new_name.Insert(0, ' '); 750 new_name.Insert(0, ' ');
754 m_InstalledTTFonts.Add(new_name); 751 m_InstalledTTFonts.Add(new_name);
755 } 752 }
756 m_pFontInfo->DeleteFont(hFont); 753 m_pFontInfo->DeleteFont(hFont);
757 } 754 }
758 m_InstalledTTFonts.Add(name); 755 m_InstalledTTFonts.Add(name);
759 m_LastFamily = name; 756 m_LastFamily = name;
760 } 757 }
761 void CFX_FontMapper::LoadInstalledFonts() { 758 void CFX_FontMapper::LoadInstalledFonts() {
762 if (m_pFontInfo == NULL) { 759 if (!m_pFontInfo) {
763 return; 760 return;
764 } 761 }
765 if (m_bListLoaded) { 762 if (m_bListLoaded) {
766 return; 763 return;
767 } 764 }
768 if (m_bListLoaded) { 765 if (m_bListLoaded) {
769 return; 766 return;
770 } 767 }
771 m_pFontInfo->EnumFontList(this); 768 m_pFontInfo->EnumFontList(this);
772 m_bListLoaded = TRUE; 769 m_bListLoaded = TRUE;
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 if (WindowCP) { 1009 if (WindowCP) {
1013 Charset = GetCharsetFromCodePage(WindowCP); 1010 Charset = GetCharsetFromCodePage(WindowCP);
1014 } else if (iBaseFont == 12 && (flags & FXFONT_SYMBOLIC)) { 1011 } else if (iBaseFont == 12 && (flags & FXFONT_SYMBOLIC)) {
1015 Charset = FXFONT_SYMBOL_CHARSET; 1012 Charset = FXFONT_SYMBOL_CHARSET;
1016 } 1013 }
1017 if (Charset == FXFONT_SHIFTJIS_CHARSET || Charset == FXFONT_GB2312_CHARSET || 1014 if (Charset == FXFONT_SHIFTJIS_CHARSET || Charset == FXFONT_GB2312_CHARSET ||
1018 Charset == FXFONT_HANGEUL_CHARSET || 1015 Charset == FXFONT_HANGEUL_CHARSET ||
1019 Charset == FXFONT_CHINESEBIG5_CHARSET) { 1016 Charset == FXFONT_CHINESEBIG5_CHARSET) {
1020 bCJK = TRUE; 1017 bCJK = TRUE;
1021 } 1018 }
1022 if (m_pFontInfo == NULL) { 1019 if (!m_pFontInfo) {
1023 pSubstFont->m_SubstFlags |= FXFONT_SUBST_STANDARD; 1020 pSubstFont->m_SubstFlags |= FXFONT_SUBST_STANDARD;
1024 return UseInternalSubst(pSubstFont, iBaseFont, italic_angle, old_weight, 1021 return UseInternalSubst(pSubstFont, iBaseFont, italic_angle, old_weight,
1025 PitchFamily); 1022 PitchFamily);
1026 } 1023 }
1027 family = GetFontFamily(family, nStyle); 1024 family = GetFontFamily(family, nStyle);
1028 CFX_ByteString match = MatchInstalledFonts(TT_NormalizeName(family)); 1025 CFX_ByteString match = MatchInstalledFonts(TT_NormalizeName(family));
1029 if (match.IsEmpty() && family != SubstName && 1026 if (match.IsEmpty() && family != SubstName &&
1030 (!bHasComma && (!bHasHypen || (bHasHypen && !bStyleAvail)))) { 1027 (!bHasComma && (!bHasHypen || (bHasHypen && !bStyleAvail)))) {
1031 match = MatchInstalledFonts(TT_NormalizeName(SubstName)); 1028 match = MatchInstalledFonts(TT_NormalizeName(SubstName));
1032 } 1029 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 if (flags & FXFONT_ITALIC) { 1078 if (flags & FXFONT_ITALIC) {
1082 bItalic = TRUE; 1079 bItalic = TRUE;
1083 } 1080 }
1084 } 1081 }
1085 iExact = !match.IsEmpty(); 1082 iExact = !match.IsEmpty();
1086 void* hFont = m_pFontInfo->MapFont(weight, bItalic, Charset, PitchFamily, 1083 void* hFont = m_pFontInfo->MapFont(weight, bItalic, Charset, PitchFamily,
1087 family, iExact); 1084 family, iExact);
1088 if (iExact) { 1085 if (iExact) {
1089 pSubstFont->m_SubstFlags |= FXFONT_SUBST_EXACT; 1086 pSubstFont->m_SubstFlags |= FXFONT_SUBST_EXACT;
1090 } 1087 }
1091 if (hFont == NULL) { 1088 if (!hFont) {
Lei Zhang 2015/12/15 02:31:56 Conflicted here.
1092 #ifdef PDF_ENABLE_XFA 1089 #ifdef PDF_ENABLE_XFA
1093 if (flags & FXFONT_EXACTMATCH) { 1090 if (flags & FXFONT_EXACTMATCH) {
1094 return NULL; 1091 return NULL;
1095 } 1092 }
1096 #endif // PDF_ENABLE_XFA 1093 #endif // PDF_ENABLE_XFA
1097 if (bCJK) { 1094 if (bCJK) {
1098 if (italic_angle != 0) { 1095 if (italic_angle != 0) {
1099 bItalic = TRUE; 1096 bItalic = TRUE;
1100 } else { 1097 } else {
1101 bItalic = FALSE; 1098 bItalic = FALSE;
1102 } 1099 }
1103 weight = old_weight; 1100 weight = old_weight;
1104 } 1101 }
1105 if (!match.IsEmpty()) { 1102 if (!match.IsEmpty()) {
1106 hFont = m_pFontInfo->GetFont(match); 1103 hFont = m_pFontInfo->GetFont(match);
1107 if (hFont == NULL) { 1104 if (!hFont) {
1108 return UseInternalSubst(pSubstFont, iBaseFont, italic_angle, old_weight, 1105 return UseInternalSubst(pSubstFont, iBaseFont, italic_angle, old_weight,
1109 PitchFamily); 1106 PitchFamily);
1110 } 1107 }
1111 } else { 1108 } else {
1112 if (Charset == FXFONT_SYMBOL_CHARSET) { 1109 if (Charset == FXFONT_SYMBOL_CHARSET) {
1113 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ || \ 1110 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ || \
1114 _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_ 1111 _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1115 if (SubstName == "Symbol") { 1112 if (SubstName == "Symbol") {
1116 pSubstFont->m_Family = "Chrome Symbol"; 1113 pSubstFont->m_Family = "Chrome Symbol";
1117 pSubstFont->m_SubstFlags |= FXFONT_SUBST_STANDARD; 1114 pSubstFont->m_SubstFlags |= FXFONT_SUBST_STANDARD;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 if (ttc_size) { 1158 if (ttc_size) {
1162 uint8_t temp[1024]; 1159 uint8_t temp[1024];
1163 m_pFontInfo->GetFontData(hFont, kTableTTCF, temp, 1024); 1160 m_pFontInfo->GetFontData(hFont, kTableTTCF, temp, 1024);
1164 FX_DWORD checksum = 0; 1161 FX_DWORD checksum = 0;
1165 for (int i = 0; i < 256; i++) { 1162 for (int i = 0; i < 256; i++) {
1166 checksum += ((FX_DWORD*)temp)[i]; 1163 checksum += ((FX_DWORD*)temp)[i];
1167 } 1164 }
1168 uint8_t* pFontData; 1165 uint8_t* pFontData;
1169 face = m_pFontMgr->GetCachedTTCFace(ttc_size, checksum, 1166 face = m_pFontMgr->GetCachedTTCFace(ttc_size, checksum,
1170 ttc_size - font_size, pFontData); 1167 ttc_size - font_size, pFontData);
1171 if (face == NULL) { 1168 if (!face) {
1172 pFontData = FX_Alloc(uint8_t, ttc_size); 1169 pFontData = FX_Alloc(uint8_t, ttc_size);
1173 m_pFontInfo->GetFontData(hFont, kTableTTCF, pFontData, ttc_size); 1170 m_pFontInfo->GetFontData(hFont, kTableTTCF, pFontData, ttc_size);
1174 face = m_pFontMgr->AddCachedTTCFace(ttc_size, checksum, pFontData, 1171 face = m_pFontMgr->AddCachedTTCFace(ttc_size, checksum, pFontData,
1175 ttc_size, ttc_size - font_size); 1172 ttc_size, ttc_size - font_size);
1176 } 1173 }
1177 } else { 1174 } else {
1178 uint8_t* pFontData; 1175 uint8_t* pFontData;
1179 face = m_pFontMgr->GetCachedFace(SubstName, weight, bItalic, pFontData); 1176 face = m_pFontMgr->GetCachedFace(SubstName, weight, bItalic, pFontData);
1180 if (face == NULL) { 1177 if (!face) {
1181 pFontData = FX_Alloc(uint8_t, font_size); 1178 pFontData = FX_Alloc(uint8_t, font_size);
1182 m_pFontInfo->GetFontData(hFont, 0, pFontData, font_size); 1179 m_pFontInfo->GetFontData(hFont, 0, pFontData, font_size);
1183 face = m_pFontMgr->AddCachedFace(SubstName, weight, bItalic, pFontData, 1180 face = m_pFontMgr->AddCachedFace(SubstName, weight, bItalic, pFontData,
1184 font_size, 1181 font_size,
1185 m_pFontInfo->GetFaceIndex(hFont)); 1182 m_pFontInfo->GetFaceIndex(hFont));
1186 } 1183 }
1187 } 1184 }
1188 if (face == NULL) { 1185 if (!face) {
1189 m_pFontInfo->DeleteFont(hFont); 1186 m_pFontInfo->DeleteFont(hFont);
1190 return NULL; 1187 return NULL;
1191 } 1188 }
1192 pSubstFont->m_Family = SubstName; 1189 pSubstFont->m_Family = SubstName;
1193 pSubstFont->m_Charset = Charset; 1190 pSubstFont->m_Charset = Charset;
1194 FX_BOOL bNeedUpdateWeight = FALSE; 1191 FX_BOOL bNeedUpdateWeight = FALSE;
1195 if (FXFT_Is_Face_Bold(face)) { 1192 if (FXFT_Is_Face_Bold(face)) {
1196 if (weight == FXFONT_FW_BOLD) { 1193 if (weight == FXFONT_FW_BOLD) {
1197 bNeedUpdateWeight = FALSE; 1194 bNeedUpdateWeight = FALSE;
1198 } else { 1195 } else {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 } 1327 }
1331 FX_BOOL CFX_FolderFontInfo::EnumFontList(CFX_FontMapper* pMapper) { 1328 FX_BOOL CFX_FolderFontInfo::EnumFontList(CFX_FontMapper* pMapper) {
1332 m_pMapper = pMapper; 1329 m_pMapper = pMapper;
1333 for (int i = 0; i < m_PathList.GetSize(); i++) { 1330 for (int i = 0; i < m_PathList.GetSize(); i++) {
1334 ScanPath(m_PathList[i]); 1331 ScanPath(m_PathList[i]);
1335 } 1332 }
1336 return TRUE; 1333 return TRUE;
1337 } 1334 }
1338 void CFX_FolderFontInfo::ScanPath(CFX_ByteString& path) { 1335 void CFX_FolderFontInfo::ScanPath(CFX_ByteString& path) {
1339 void* handle = FX_OpenFolder(path); 1336 void* handle = FX_OpenFolder(path);
1340 if (handle == NULL) { 1337 if (!handle) {
1341 return; 1338 return;
1342 } 1339 }
1343 CFX_ByteString filename; 1340 CFX_ByteString filename;
1344 FX_BOOL bFolder; 1341 FX_BOOL bFolder;
1345 while (FX_GetNextFile(handle, filename, bFolder)) { 1342 while (FX_GetNextFile(handle, filename, bFolder)) {
1346 if (bFolder) { 1343 if (bFolder) {
1347 if (filename == "." || filename == "..") { 1344 if (filename == "." || filename == "..") {
1348 continue; 1345 continue;
1349 } 1346 }
1350 } else { 1347 } else {
(...skipping 13 matching lines...) Expand all
1364 if (bFolder) { 1361 if (bFolder) {
1365 ScanPath(fullpath); 1362 ScanPath(fullpath);
1366 } else { 1363 } else {
1367 ScanFile(fullpath); 1364 ScanFile(fullpath);
1368 } 1365 }
1369 } 1366 }
1370 FX_CloseFolder(handle); 1367 FX_CloseFolder(handle);
1371 } 1368 }
1372 void CFX_FolderFontInfo::ScanFile(CFX_ByteString& path) { 1369 void CFX_FolderFontInfo::ScanFile(CFX_ByteString& path) {
1373 FXSYS_FILE* pFile = FXSYS_fopen(path, "rb"); 1370 FXSYS_FILE* pFile = FXSYS_fopen(path, "rb");
1374 if (pFile == NULL) { 1371 if (!pFile) {
1375 return; 1372 return;
1376 } 1373 }
1377 FXSYS_fseek(pFile, 0, FXSYS_SEEK_END); 1374 FXSYS_fseek(pFile, 0, FXSYS_SEEK_END);
1378 FX_DWORD filesize = FXSYS_ftell(pFile); 1375 FX_DWORD filesize = FXSYS_ftell(pFile);
1379 uint8_t buffer[16]; 1376 uint8_t buffer[16];
1380 FXSYS_fseek(pFile, 0, FXSYS_SEEK_SET); 1377 FXSYS_fseek(pFile, 0, FXSYS_SEEK_SET);
1381 size_t readCnt = FXSYS_fread(buffer, 12, 1, pFile); 1378 size_t readCnt = FXSYS_fread(buffer, 12, 1, pFile);
1382 if (readCnt != 1) { 1379 if (readCnt != 1) {
1383 FXSYS_fclose(pFile); 1380 FXSYS_fclose(pFile);
1384 return; 1381 return;
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1575 if (FXSYS_fseek(pFile, offset, FXSYS_SEEK_SET) < 0 || 1572 if (FXSYS_fseek(pFile, offset, FXSYS_SEEK_SET) < 0 ||
1576 FXSYS_fread(buffer, datasize, 1, pFile) != 1) { 1573 FXSYS_fread(buffer, datasize, 1, pFile) != 1) {
1577 datasize = 0; 1574 datasize = 0;
1578 } 1575 }
1579 FXSYS_fclose(pFile); 1576 FXSYS_fclose(pFile);
1580 return datasize; 1577 return datasize;
1581 } 1578 }
1582 1579
1583 void CFX_FolderFontInfo::DeleteFont(void* hFont) {} 1580 void CFX_FolderFontInfo::DeleteFont(void* hFont) {}
1584 FX_BOOL CFX_FolderFontInfo::GetFaceName(void* hFont, CFX_ByteString& name) { 1581 FX_BOOL CFX_FolderFontInfo::GetFaceName(void* hFont, CFX_ByteString& name) {
1585 if (hFont == NULL) { 1582 if (!hFont) {
1586 return FALSE; 1583 return FALSE;
1587 } 1584 }
1588 CFX_FontFaceInfo* pFont = (CFX_FontFaceInfo*)hFont; 1585 CFX_FontFaceInfo* pFont = (CFX_FontFaceInfo*)hFont;
1589 name = pFont->m_FaceName; 1586 name = pFont->m_FaceName;
1590 return TRUE; 1587 return TRUE;
1591 } 1588 }
1592 FX_BOOL CFX_FolderFontInfo::GetFontCharset(void* hFont, int& charset) { 1589 FX_BOOL CFX_FolderFontInfo::GetFontCharset(void* hFont, int& charset) {
1593 return FALSE; 1590 return FALSE;
1594 } 1591 }
1595 1592
1596 int PDF_GetStandardFontName(CFX_ByteString* name) { 1593 int PDF_GetStandardFontName(CFX_ByteString* name) {
1597 AltFontName* found = static_cast<AltFontName*>( 1594 AltFontName* found = static_cast<AltFontName*>(
1598 FXSYS_bsearch(name->c_str(), g_AltFontNames, FX_ArraySize(g_AltFontNames), 1595 FXSYS_bsearch(name->c_str(), g_AltFontNames, FX_ArraySize(g_AltFontNames),
1599 sizeof(AltFontName), CompareString)); 1596 sizeof(AltFontName), CompareString));
1600 if (!found) 1597 if (!found)
1601 return -1; 1598 return -1;
1602 1599
1603 *name = g_Base14FontNames[found->m_Index]; 1600 *name = g_Base14FontNames[found->m_Index];
1604 return found->m_Index; 1601 return found->m_Index;
1605 } 1602 }
OLDNEW
« no previous file with comments | « core/src/fxge/ge/fx_ge_font.cpp ('k') | core/src/fxge/ge/fx_ge_path.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698