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

Side by Side Diff: xfa/fgas/font/fgas_stdfontmgr.cpp

Issue 2322483003: Fix leaks in class CFGAS_FontMgrImp (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/include/fx_stream.h" 9 #include "core/fxcrt/include/fx_stream.h"
10 #include "core/fxge/include/cfx_fontmapper.h" 10 #include "core/fxge/include/cfx_fontmapper.h"
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 uint32_t dwHash; 584 uint32_t dwHash;
585 CFX_FontDescriptorInfos* pDescs; 585 CFX_FontDescriptorInfos* pDescs;
586 m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs); 586 m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs);
587 delete pDescs; 587 delete pDescs;
588 } 588 }
589 pos = m_Hash2Fonts.GetStartPosition(); 589 pos = m_Hash2Fonts.GetStartPosition();
590 while (pos) { 590 while (pos) {
591 uint32_t dwHash; 591 uint32_t dwHash;
592 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; 592 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts;
593 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); 593 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts);
594 for (int32_t i = 0; i < pFonts->GetSize(); i++)
595 delete pFonts->GetAt(i);
594 delete pFonts; 596 delete pFonts;
595 } 597 }
596 m_Hash2Fonts.RemoveAll(); 598 m_Hash2Fonts.RemoveAll();
597 pos = m_IFXFont2FileRead.GetStartPosition(); 599 pos = m_IFXFont2FileRead.GetStartPosition();
598 while (pos) { 600 while (pos) {
599 CFGAS_GEFont* pFont; 601 CFGAS_GEFont* pFont;
600 IFX_FileRead* pFileRead; 602 IFX_FileRead* pFileRead;
601 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); 603 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead);
602 pFileRead->Release(); 604 pFileRead->Release();
603 } 605 }
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 return nullptr; 840 return nullptr;
839 841
840 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); 842 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo();
841 if (!pSystemFontInfo) 843 if (!pSystemFontInfo)
842 return nullptr; 844 return nullptr;
843 845
844 IFX_FileRead* pFontStream = CreateFontStream(wsFaceName.UTF8Encode()); 846 IFX_FileRead* pFontStream = CreateFontStream(wsFaceName.UTF8Encode());
845 if (!pFontStream) 847 if (!pFontStream)
846 return nullptr; 848 return nullptr;
847 849
848 if (!LoadFace(pFontStream, 0)) {
849 pFontStream->Release();
850 return nullptr;
851 }
852
853 CFX_Font* pInternalFont = new CFX_Font(); 850 CFX_Font* pInternalFont = new CFX_Font();
854 if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) { 851 if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) {
855 pFontStream->Release(); 852 pFontStream->Release();
856 return nullptr; 853 return nullptr;
857 } 854 }
858 855
859 CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(pInternalFont, this); 856 CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(pInternalFont, this);
860 if (!pFont) { 857 if (!pFont) {
861 pFontStream->Release(); 858 pFontStream->Release();
862 return nullptr; 859 return nullptr;
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 1382
1386 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1, 1383 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1,
1387 const CFX_WideString& Name2) { 1384 const CFX_WideString& Name2) {
1388 if (Name1.Find(Name2.c_str()) != -1) { 1385 if (Name1.Find(Name2.c_str()) != -1) {
1389 return 1; 1386 return 1;
1390 } 1387 }
1391 return 0; 1388 return 0;
1392 } 1389 }
1393 1390
1394 #endif 1391 #endif
OLDNEW
« 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