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

Side by Side Diff: core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp

Issue 472653002: No need to release m_pBaseCS in CPDF_IndexedCS and CPDF_PatternCS (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 6 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 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 "../../../include/fpdfapi/fpdf_page.h" 7 #include "../../../include/fpdfapi/fpdf_page.h"
8 #include "../../../include/fpdfapi/fpdf_module.h" 8 #include "../../../include/fpdfapi/fpdf_module.h"
9 #include "../../../include/fdrm/fx_crypt.h" 9 #include "../../../include/fdrm/fx_crypt.h"
10 #include "../fpdf_font/font_int.h" 10 #include "../fpdf_font/font_int.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 m_ImageMap.GetNextAssoc(pos, objNum, imageData); 185 m_ImageMap.GetNextAssoc(pos, objNum, imageData);
186 nCount = imageData->m_nCount; 186 nCount = imageData->m_nCount;
187 if (bRelease || nCount < 2) { 187 if (bRelease || nCount < 2) {
188 delete imageData->m_Obj; 188 delete imageData->m_Obj;
189 delete imageData; 189 delete imageData;
190 m_ImageMap.RemoveKey(objNum); 190 m_ImageMap.RemoveKey(objNum);
191 } 191 }
192 } 192 }
193 } 193 }
194 { 194 {
195 pos = m_ColorSpaceMap.GetStartPosition(); 195 FX_POSITION pos_start = m_ColorSpaceMap.GetStartPosition();
Tom Sepez 2014/08/15 18:54:44 nit: I'd unroll the loop rather than trying to be
196 while (pos) { 196 for (int releaseLoop = 0; releaseLoop < 2; releaseLoop++){
197 CPDF_Object* csKey; 197 pos = pos_start;
198 CPDF_CountedObject<CPDF_ColorSpace*>* csData; 198 while (pos) {
199 m_ColorSpaceMap.GetNextAssoc(pos, csKey, csData); 199 CPDF_Object* csKey;
200 nCount = csData->m_nCount; 200 CPDF_CountedObject<CPDF_ColorSpace*>* csData;
201 if (bRelease || nCount < 2) { 201 m_ColorSpaceMap.GetNextAssoc(pos, csKey, csData);
202 csData->m_Obj->ReleaseCS(); 202 nCount = csData->m_nCount;
203 csData->m_Obj = NULL; 203 if ((bRelease || nCount < 2) && csData->m_Obj) {
Tom Sepez 2014/08/15 18:58:48 What about csData's that dont have an m_Obj? Look
204 int CS_Family = csData->m_Obj->GetFamily();
205 if ((releaseLoop == 0 && CS_Family == PDFCS_INDEXED) || (rel easeLoop == 1 && CS_Family != PDFCS_INDEXED)) {
206 csData->m_Obj->ReleaseCS();
207 csData->m_Obj = NULL;
208 }
209 }
204 } 210 }
205 } 211 }
206 } 212 }
207 { 213 {
208 pos = m_IccProfileMap.GetStartPosition(); 214 pos = m_IccProfileMap.GetStartPosition();
209 while (pos) { 215 while (pos) {
210 CPDF_Stream* ipKey; 216 CPDF_Stream* ipKey;
211 CPDF_CountedObject<CPDF_IccProfile*>* ipData; 217 CPDF_CountedObject<CPDF_IccProfile*>* ipData;
212 m_IccProfileMap.GetNextAssoc(pos, ipKey, ipData); 218 m_IccProfileMap.GetNextAssoc(pos, ipKey, ipData);
213 nCount = ipData->m_nCount; 219 nCount = ipData->m_nCount;
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 m_FontFileMap.SetAt(pFontStream, ftData); 643 m_FontFileMap.SetAt(pFontStream, ftData);
638 return pFontFile; 644 return pFontFile;
639 } 645 }
640 void CPDF_DocPageData::ReleaseFontFileStreamAcc(CPDF_Stream* pFontStream, FX_BOO L bForce) 646 void CPDF_DocPageData::ReleaseFontFileStreamAcc(CPDF_Stream* pFontStream, FX_BOO L bForce)
641 { 647 {
642 if (!pFontStream) { 648 if (!pFontStream) {
643 return; 649 return;
644 } 650 }
645 PDF_DocPageData_Release<CPDF_Stream*, CPDF_StreamAcc*>(m_FontFileMap, pFontS tream, NULL, bForce); 651 PDF_DocPageData_Release<CPDF_Stream*, CPDF_StreamAcc*>(m_FontFileMap, pFontS tream, NULL, bForce);
646 } 652 }
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