| OLD | NEW | 
|     1 // Copyright 2015 PDFium Authors. All rights reserved. |     1 // Copyright 2015 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 "xfa/fgas/font/fgas_stdfontmgr.h" |     7 #include "xfa/fgas/font/fgas_stdfontmgr.h" | 
|     8  |     8  | 
|     9 #include "core/fxcrt/fx_stream.h" |     9 #include "core/fxcrt/fx_stream.h" | 
|    10 #include "core/fxge/cfx_fontmapper.h" |    10 #include "core/fxge/cfx_fontmapper.h" | 
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   584     CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; |   584     CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; | 
|   585     m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); |   585     m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); | 
|   586     for (int32_t i = 0; i < pFonts->GetSize(); i++) |   586     for (int32_t i = 0; i < pFonts->GetSize(); i++) | 
|   587       delete pFonts->GetAt(i); |   587       delete pFonts->GetAt(i); | 
|   588     delete pFonts; |   588     delete pFonts; | 
|   589   } |   589   } | 
|   590   m_Hash2Fonts.RemoveAll(); |   590   m_Hash2Fonts.RemoveAll(); | 
|   591   pos = m_IFXFont2FileRead.GetStartPosition(); |   591   pos = m_IFXFont2FileRead.GetStartPosition(); | 
|   592   while (pos) { |   592   while (pos) { | 
|   593     CFGAS_GEFont* pFont; |   593     CFGAS_GEFont* pFont; | 
|   594     IFX_FileRead* pFileRead; |   594     IFX_SeekableReadStream* pFileRead; | 
|   595     m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); |   595     m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); | 
|   596     pFileRead->Release(); |   596     pFileRead->Release(); | 
|   597   } |   597   } | 
|   598 } |   598 } | 
|   599  |   599  | 
|   600 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFontMapper() { |   600 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFontMapper() { | 
|   601   CFX_FontMapper* pFontMapper = |   601   CFX_FontMapper* pFontMapper = | 
|   602       CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper(); |   602       CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper(); | 
|   603   if (!pFontMapper) |   603   if (!pFontMapper) | 
|   604     return FALSE; |   604     return FALSE; | 
|   605  |   605  | 
|   606   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); |   606   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); | 
|   607   if (!pSystemFontInfo) |   607   if (!pSystemFontInfo) | 
|   608     return FALSE; |   608     return FALSE; | 
|   609  |   609  | 
|   610   pSystemFontInfo->EnumFontList(pFontMapper); |   610   pSystemFontInfo->EnumFontList(pFontMapper); | 
|   611   for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) { |   611   for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) { | 
|   612     IFX_FileRead* pFontStream = |   612     IFX_SeekableReadStream* pFontStream = | 
|   613         CreateFontStream(pFontMapper, pSystemFontInfo, i); |   613         CreateFontStream(pFontMapper, pSystemFontInfo, i); | 
|   614     if (!pFontStream) |   614     if (!pFontStream) | 
|   615       continue; |   615       continue; | 
|   616  |   616  | 
|   617     CFX_WideString wsFaceName = |   617     CFX_WideString wsFaceName = | 
|   618         CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str()); |   618         CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str()); | 
|   619     RegisterFaces(pFontStream, &wsFaceName); |   619     RegisterFaces(pFontStream, &wsFaceName); | 
|   620     pFontStream->Release(); |   620     pFontStream->Release(); | 
|   621   } |   621   } | 
|   622   if (m_InstalledFonts.GetSize() == 0) |   622   if (m_InstalledFonts.GetSize() == 0) | 
|   623     return FALSE; |   623     return FALSE; | 
|   624  |   624  | 
|   625   return TRUE; |   625   return TRUE; | 
|   626 } |   626 } | 
|   627  |   627  | 
|   628 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFiles() { |   628 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFiles() { | 
|   629   CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary(); |   629   CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary(); | 
|   630   FX_POSITION pos = m_pFontSource->GetStartPosition(); |   630   FX_POSITION pos = m_pFontSource->GetStartPosition(); | 
|   631   IFX_FileAccess* pFontSource = nullptr; |   631   IFX_FileAccess* pFontSource = nullptr; | 
|   632   IFX_FileRead* pFontStream = nullptr; |   632   IFX_SeekableReadStream* pFontStream = nullptr; | 
|   633   while (pos) { |   633   while (pos) { | 
|   634     pFontSource = m_pFontSource->GetNext(pos); |   634     pFontSource = m_pFontSource->GetNext(pos); | 
|   635     pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); |   635     pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); | 
|   636     if (!pFontStream) { |   636     if (!pFontStream) { | 
|   637       pFontSource->Release(); |   637       pFontSource->Release(); | 
|   638       continue; |   638       continue; | 
|   639     } |   639     } | 
|   640     RegisterFaces(pFontStream, nullptr); |   640     RegisterFaces(pFontStream, nullptr); | 
|   641     pFontStream->Release(); |   641     pFontStream->Release(); | 
|   642     pFontSource->Release(); |   642     pFontSource->Release(); | 
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   776     pFonts->Add(pFont); |   776     pFonts->Add(pFont); | 
|   777     return pFont; |   777     return pFont; | 
|   778   } |   778   } | 
|   779   if (!pszFontFamily) |   779   if (!pszFontFamily) | 
|   780     m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr); |   780     m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr); | 
|   781   return nullptr; |   781   return nullptr; | 
|   782 } |   782 } | 
|   783  |   783  | 
|   784 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc, |   784 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc, | 
|   785                                         FX_WCHAR wcUnicode) { |   785                                         FX_WCHAR wcUnicode) { | 
|   786   IFX_FileRead* pFileRead = CreateFontStream(pDesc->m_wsFaceName.UTF8Encode()); |   786   IFX_SeekableReadStream* pFileRead = | 
 |   787       CreateFontStream(pDesc->m_wsFaceName.UTF8Encode()); | 
|   787   if (!pFileRead) |   788   if (!pFileRead) | 
|   788     return FALSE; |   789     return FALSE; | 
|   789   FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex); |   790   FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex); | 
|   790   FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE); |   791   FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE); | 
|   791   FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode); |   792   FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode); | 
|   792   pFileRead->Release(); |   793   pFileRead->Release(); | 
|   793   if (!pFace) |   794   if (!pFace) | 
|   794     return FALSE; |   795     return FALSE; | 
|   795   if (FXFT_Get_Face_External_Stream(pFace)) |   796   if (FXFT_Get_Face_External_Stream(pFace)) | 
|   796     FXFT_Clear_Face_External_Stream(pFace); |   797     FXFT_Clear_Face_External_Stream(pFace); | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   828                                          int32_t* pFaceCount) { |   829                                          int32_t* pFaceCount) { | 
|   829   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); |   830   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); | 
|   830   CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); |   831   CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); | 
|   831   if (!pFontMapper) |   832   if (!pFontMapper) | 
|   832     return nullptr; |   833     return nullptr; | 
|   833  |   834  | 
|   834   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); |   835   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); | 
|   835   if (!pSystemFontInfo) |   836   if (!pSystemFontInfo) | 
|   836     return nullptr; |   837     return nullptr; | 
|   837  |   838  | 
|   838   IFX_FileRead* pFontStream = CreateFontStream(wsFaceName.UTF8Encode()); |   839   IFX_SeekableReadStream* pFontStream = | 
 |   840       CreateFontStream(wsFaceName.UTF8Encode()); | 
|   839   if (!pFontStream) |   841   if (!pFontStream) | 
|   840     return nullptr; |   842     return nullptr; | 
|   841  |   843  | 
|   842   std::unique_ptr<CFX_Font> pInternalFont(new CFX_Font()); |   844   std::unique_ptr<CFX_Font> pInternalFont(new CFX_Font()); | 
|   843   if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) { |   845   if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) { | 
|   844     pFontStream->Release(); |   846     pFontStream->Release(); | 
|   845     return nullptr; |   847     return nullptr; | 
|   846   } |   848   } | 
|   847  |   849  | 
|   848   CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(std::move(pInternalFont), this); |   850   CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(std::move(pInternalFont), this); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|   860  |   862  | 
|   861 extern "C" { |   863 extern "C" { | 
|   862  |   864  | 
|   863 unsigned long _ftStreamRead(FXFT_Stream stream, |   865 unsigned long _ftStreamRead(FXFT_Stream stream, | 
|   864                             unsigned long offset, |   866                             unsigned long offset, | 
|   865                             unsigned char* buffer, |   867                             unsigned char* buffer, | 
|   866                             unsigned long count) { |   868                             unsigned long count) { | 
|   867   if (count == 0) |   869   if (count == 0) | 
|   868     return 0; |   870     return 0; | 
|   869  |   871  | 
|   870   IFX_FileRead* pFile = (IFX_FileRead*)stream->descriptor.pointer; |   872   IFX_SeekableReadStream* pFile = | 
 |   873       (IFX_SeekableReadStream*)stream->descriptor.pointer; | 
|   871   int res = pFile->ReadBlock(buffer, offset, count); |   874   int res = pFile->ReadBlock(buffer, offset, count); | 
|   872   if (res) |   875   if (res) | 
|   873     return count; |   876     return count; | 
|   874   return 0; |   877   return 0; | 
|   875 } |   878 } | 
|   876  |   879  | 
|   877 void _ftStreamClose(FXFT_Stream stream) {} |   880 void _ftStreamClose(FXFT_Stream stream) {} | 
|   878  |   881  | 
|   879 };  // extern "C" |   882 };  // extern "C" | 
|   880  |   883  | 
|   881 FXFT_Face CFGAS_FontMgrImp::LoadFace(IFX_FileRead* pFontStream, |   884 FXFT_Face CFGAS_FontMgrImp::LoadFace(IFX_SeekableReadStream* pFontStream, | 
|   882                                      int32_t iFaceIndex) { |   885                                      int32_t iFaceIndex) { | 
|   883   if (!pFontStream) |   886   if (!pFontStream) | 
|   884     return nullptr; |   887     return nullptr; | 
|   885  |   888  | 
|   886   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); |   889   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); | 
|   887   pFontMgr->InitFTLibrary(); |   890   pFontMgr->InitFTLibrary(); | 
|   888   FXFT_Library library = pFontMgr->GetFTLibrary(); |   891   FXFT_Library library = pFontMgr->GetFTLibrary(); | 
|   889   if (!library) |   892   if (!library) | 
|   890     return nullptr; |   893     return nullptr; | 
|   891  |   894  | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|   906   FXFT_Face pFace = nullptr; |   909   FXFT_Face pFace = nullptr; | 
|   907   if (FXFT_Open_Face(library, &ftArgs, iFaceIndex, &pFace)) { |   910   if (FXFT_Open_Face(library, &ftArgs, iFaceIndex, &pFace)) { | 
|   908     FX_Free(ftStream); |   911     FX_Free(ftStream); | 
|   909     return nullptr; |   912     return nullptr; | 
|   910   } |   913   } | 
|   911  |   914  | 
|   912   FXFT_Set_Pixel_Sizes(pFace, 0, 64); |   915   FXFT_Set_Pixel_Sizes(pFace, 0, 64); | 
|   913   return pFace; |   916   return pFace; | 
|   914 } |   917 } | 
|   915  |   918  | 
|   916 IFX_FileRead* CFGAS_FontMgrImp::CreateFontStream( |   919 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream( | 
|   917     CFX_FontMapper* pFontMapper, |   920     CFX_FontMapper* pFontMapper, | 
|   918     IFX_SystemFontInfo* pSystemFontInfo, |   921     IFX_SystemFontInfo* pSystemFontInfo, | 
|   919     uint32_t index) { |   922     uint32_t index) { | 
|   920   int iExact = 0; |   923   int iExact = 0; | 
|   921   void* hFont = |   924   void* hFont = | 
|   922       pSystemFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, |   925       pSystemFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, | 
|   923                                pFontMapper->GetFaceName(index).c_str(), iExact); |   926                                pFontMapper->GetFaceName(index).c_str(), iExact); | 
|   924   if (!hFont) |   927   if (!hFont) | 
|   925     return nullptr; |   928     return nullptr; | 
|   926  |   929  | 
|   927   uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0); |   930   uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0); | 
|   928   if (dwFileSize == 0) |   931   if (dwFileSize == 0) | 
|   929     return nullptr; |   932     return nullptr; | 
|   930  |   933  | 
|   931   uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1); |   934   uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1); | 
|   932   dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize); |   935   dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize); | 
|   933  |   936  | 
|   934   return FX_CreateMemoryStream(pBuffer, dwFileSize, TRUE); |   937   return FX_CreateMemoryStream(pBuffer, dwFileSize, TRUE); | 
|   935 } |   938 } | 
|   936  |   939  | 
|   937 IFX_FileRead* CFGAS_FontMgrImp::CreateFontStream( |   940 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream( | 
|   938     const CFX_ByteString& bsFaceName) { |   941     const CFX_ByteString& bsFaceName) { | 
|   939   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); |   942   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); | 
|   940   CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); |   943   CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); | 
|   941  |   944  | 
|   942   if (!pFontMapper) |   945   if (!pFontMapper) | 
|   943     return nullptr; |   946     return nullptr; | 
|   944  |   947  | 
|   945   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); |   948   IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); | 
|   946   if (!pSystemFontInfo) |   949   if (!pSystemFontInfo) | 
|   947     return nullptr; |   950     return nullptr; | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1104   FX_POSITION pos = m_Hash2CandidateList.GetStartPosition(); |  1107   FX_POSITION pos = m_Hash2CandidateList.GetStartPosition(); | 
|  1105   while (pos) { |  1108   while (pos) { | 
|  1106     uint32_t dwHash; |  1109     uint32_t dwHash; | 
|  1107     CFX_FontDescriptorInfos* pDescs; |  1110     CFX_FontDescriptorInfos* pDescs; | 
|  1108     m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs); |  1111     m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs); | 
|  1109     delete pDescs; |  1112     delete pDescs; | 
|  1110   } |  1113   } | 
|  1111   pos = m_IFXFont2FileRead.GetStartPosition(); |  1114   pos = m_IFXFont2FileRead.GetStartPosition(); | 
|  1112   while (pos) { |  1115   while (pos) { | 
|  1113     CFGAS_GEFont* pFont; |  1116     CFGAS_GEFont* pFont; | 
|  1114     IFX_FileRead* pFileRead; |  1117     IFX_SeekableReadStream* pFileRead; | 
|  1115     m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); |  1118     m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); | 
|  1116     pFileRead->Release(); |  1119     pFileRead->Release(); | 
|  1117   } |  1120   } | 
|  1118 } |  1121 } | 
|  1119  |  1122  | 
|  1120 void CFGAS_FontMgrImp::RemoveFont(CFGAS_GEFont* pEFont) { |  1123 void CFGAS_FontMgrImp::RemoveFont(CFGAS_GEFont* pEFont) { | 
|  1121   if (!pEFont) { |  1124   if (!pEFont) { | 
|  1122     return; |  1125     return; | 
|  1123   } |  1126   } | 
|  1124   IFX_FileRead* pFileRead; |  1127   IFX_SeekableReadStream* pFileRead; | 
|  1125   if (m_IFXFont2FileRead.Lookup(pEFont, pFileRead)) { |  1128   if (m_IFXFont2FileRead.Lookup(pEFont, pFileRead)) { | 
|  1126     pFileRead->Release(); |  1129     pFileRead->Release(); | 
|  1127     m_IFXFont2FileRead.RemoveKey(pEFont); |  1130     m_IFXFont2FileRead.RemoveKey(pEFont); | 
|  1128   } |  1131   } | 
|  1129   FX_POSITION pos; |  1132   FX_POSITION pos; | 
|  1130   pos = m_Hash2Fonts.GetStartPosition(); |  1133   pos = m_Hash2Fonts.GetStartPosition(); | 
|  1131   while (pos) { |  1134   while (pos) { | 
|  1132     uint32_t dwHash; |  1135     uint32_t dwHash; | 
|  1133     CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; |  1136     CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; | 
|  1134     m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); |  1137     m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1172  |  1175  | 
|  1173   pFont->m_wsFamilyNames.Add(CFX_ByteString(pFace->family_name).UTF8Decode()); |  1176   pFont->m_wsFamilyNames.Add(CFX_ByteString(pFace->family_name).UTF8Decode()); | 
|  1174   pFont->m_wsFaceName = |  1177   pFont->m_wsFaceName = | 
|  1175       pFaceName ? *pFaceName |  1178       pFaceName ? *pFaceName | 
|  1176                 : CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(pFace)); |  1179                 : CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(pFace)); | 
|  1177   pFont->m_nFaceIndex = pFace->face_index; |  1180   pFont->m_nFaceIndex = pFace->face_index; | 
|  1178  |  1181  | 
|  1179   m_InstalledFonts.Add(pFont.release()); |  1182   m_InstalledFonts.Add(pFont.release()); | 
|  1180 } |  1183 } | 
|  1181  |  1184  | 
|  1182 void CFGAS_FontMgrImp::RegisterFaces(IFX_FileRead* pFontStream, |  1185 void CFGAS_FontMgrImp::RegisterFaces(IFX_SeekableReadStream* pFontStream, | 
|  1183                                      const CFX_WideString* pFaceName) { |  1186                                      const CFX_WideString* pFaceName) { | 
|  1184   int32_t index = 0; |  1187   int32_t index = 0; | 
|  1185   int32_t num_faces = 0; |  1188   int32_t num_faces = 0; | 
|  1186   do { |  1189   do { | 
|  1187     FXFT_Face pFace = LoadFace(pFontStream, index++); |  1190     FXFT_Face pFace = LoadFace(pFontStream, index++); | 
|  1188     if (!pFace) |  1191     if (!pFace) | 
|  1189       continue; |  1192       continue; | 
|  1190     // All faces keep number of faces. It can be retrieved from any one face. |  1193     // All faces keep number of faces. It can be retrieved from any one face. | 
|  1191     if (num_faces == 0) |  1194     if (num_faces == 0) | 
|  1192       num_faces = pFace->num_faces; |  1195       num_faces = pFace->num_faces; | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1374  |  1377  | 
|  1375 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1, |  1378 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1, | 
|  1376                                      const CFX_WideString& Name2) { |  1379                                      const CFX_WideString& Name2) { | 
|  1377   if (Name1.Find(Name2.c_str()) != -1) { |  1380   if (Name1.Find(Name2.c_str()) != -1) { | 
|  1378     return 1; |  1381     return 1; | 
|  1379   } |  1382   } | 
|  1380   return 0; |  1383   return 0; | 
|  1381 } |  1384 } | 
|  1382  |  1385  | 
|  1383 #endif |  1386 #endif | 
| OLD | NEW |