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

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

Issue 1579883002: Fix memory leakage on Linux - part2 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 4 years, 11 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 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 "core/include/fxge/fx_freetype.h" 7 #include "core/include/fxge/fx_freetype.h"
8 #include "core/include/fxge/fx_ge.h" 8 #include "core/include/fxge/fx_ge.h"
9 #include "text_int.h" 9 #include "text_int.h"
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 m_pDwFont = pFont->m_pDwFont; 99 m_pDwFont = pFont->m_pDwFont;
100 m_hHandle = pFont->m_hHandle; 100 m_hHandle = pFont->m_hHandle;
101 m_bDwLoaded = pFont->m_bDwLoaded; 101 m_bDwLoaded = pFont->m_bDwLoaded;
102 m_pOwnedStream = pFont->m_pOwnedStream; 102 m_pOwnedStream = pFont->m_pOwnedStream;
103 return TRUE; 103 return TRUE;
104 } 104 }
105 #endif // PDF_ENABLE_XFA 105 #endif // PDF_ENABLE_XFA
106 106
107 CFX_Font::~CFX_Font() { 107 CFX_Font::~CFX_Font() {
108 delete m_pSubstFont; 108 delete m_pSubstFont;
109 m_pSubstFont = NULL;
110 #ifndef PDF_ENABLE_XFA
111 FX_Free(m_pFontDataAllocation); 109 FX_Free(m_pFontDataAllocation);
112 m_pFontDataAllocation = NULL; 110 #ifdef PDF_ENABLE_XFA
113 #else
114 if (m_bLogic) { 111 if (m_bLogic) {
115 m_OtfFontData.DetachBuffer(); 112 m_OtfFontData.DetachBuffer();
116 return; 113 return;
117 } 114 }
118 #endif // PDF_ENABLE_XFA 115 #endif // PDF_ENABLE_XFA
119 if (m_Face) { 116 if (m_Face) {
120 #ifndef PDF_ENABLE_XFA 117 #ifndef PDF_ENABLE_XFA
121 if (FXFT_Get_Face_External_Stream(m_Face)) { 118 if (FXFT_Get_Face_External_Stream(m_Face)) {
122 FXFT_Clear_Face_External_Stream(m_Face); 119 FXFT_Clear_Face_External_Stream(m_Face);
123 } 120 }
124 #endif // PDF_ENABLE_XFA 121 #endif // PDF_ENABLE_XFA
125 if (m_bEmbedded) { 122 if (m_bEmbedded) {
126 DeleteFace(); 123 DeleteFace();
127 } else { 124 } else {
128 CFX_GEModule::Get()->GetFontMgr()->ReleaseFace(m_Face); 125 CFX_GEModule::Get()->GetFontMgr()->ReleaseFace(m_Face);
129 } 126 }
130 } 127 }
131 #ifdef PDF_ENABLE_XFA 128 #ifdef PDF_ENABLE_XFA
132 FX_Free(m_pOwnedStream); 129 FX_Free(m_pOwnedStream);
133 m_pOwnedStream = NULL;
134 #endif // PDF_ENABLE_XFA 130 #endif // PDF_ENABLE_XFA
135 FX_Free(m_pGsubData); 131 FX_Free(m_pGsubData);
136 m_pGsubData = NULL;
137 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ 132 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
138 ReleasePlatformResource(); 133 ReleasePlatformResource();
139 #endif 134 #endif
140 } 135 }
141 void CFX_Font::DeleteFace() { 136 void CFX_Font::DeleteFace() {
142 FXFT_Done_Face(m_Face); 137 FXFT_Done_Face(m_Face);
143 m_Face = NULL; 138 m_Face = NULL;
144 } 139 }
145 void CFX_Font::LoadSubst(const CFX_ByteString& face_name, 140 void CFX_Font::LoadSubst(const CFX_ByteString& face_name,
146 FX_BOOL bTrueType, 141 FX_BOOL bTrueType,
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 for (size_t i = 0; i < FX_ArraySize(g_EncodingID); ++i) { 546 for (size_t i = 0; i < FX_ArraySize(g_EncodingID); ++i) {
552 CFX_UnicodeEncodingEx* pFontEncoding = 547 CFX_UnicodeEncodingEx* pFontEncoding =
553 _FXFM_CreateFontEncoding(pFont, g_EncodingID[i]); 548 _FXFM_CreateFontEncoding(pFont, g_EncodingID[i]);
554 if (pFontEncoding) { 549 if (pFontEncoding) {
555 return pFontEncoding; 550 return pFontEncoding;
556 } 551 }
557 } 552 }
558 return NULL; 553 return NULL;
559 } 554 }
560 #endif // PDF_ENABLE_XFA 555 #endif // PDF_ENABLE_XFA
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