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

Side by Side Diff: core/fpdfapi/fpdf_render/fpdf_render.cpp

Issue 2366673003: Rename CPDF_CountedObject to CFX_WeakPtr::Handle (Closed)
Patch Set: comment 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 | « core/fpdfapi/fpdf_page/pageint.h ('k') | core/fpdfapi/fpdf_render/render_int.h » ('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 "core/fpdfapi/fpdf_render/render_int.h" 7 #include "core/fpdfapi/fpdf_render/render_int.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 27 matching lines...) Expand all
38 CPDF_DocRenderData::CPDF_DocRenderData(CPDF_Document* pPDFDoc) 38 CPDF_DocRenderData::CPDF_DocRenderData(CPDF_Document* pPDFDoc)
39 : m_pPDFDoc(pPDFDoc) {} 39 : m_pPDFDoc(pPDFDoc) {}
40 40
41 CPDF_DocRenderData::~CPDF_DocRenderData() { 41 CPDF_DocRenderData::~CPDF_DocRenderData() {
42 Clear(TRUE); 42 Clear(TRUE);
43 } 43 }
44 44
45 void CPDF_DocRenderData::Clear(FX_BOOL bRelease) { 45 void CPDF_DocRenderData::Clear(FX_BOOL bRelease) {
46 for (auto it = m_Type3FaceMap.begin(); it != m_Type3FaceMap.end();) { 46 for (auto it = m_Type3FaceMap.begin(); it != m_Type3FaceMap.end();) {
47 auto curr_it = it++; 47 auto curr_it = it++;
48 CPDF_CountedObject<CPDF_Type3Cache>* cache = curr_it->second; 48 CFX_WeakPtr<CPDF_Type3Cache>::Handle* cache = curr_it->second;
49 if (bRelease || cache->use_count() < 2) { 49 if (bRelease || cache->use_count() < 2) {
50 delete cache->get(); 50 delete cache->get();
51 delete cache; 51 delete cache;
52 m_Type3FaceMap.erase(curr_it); 52 m_Type3FaceMap.erase(curr_it);
53 } 53 }
54 } 54 }
55 55
56 for (auto it = m_TransferFuncMap.begin(); it != m_TransferFuncMap.end();) { 56 for (auto it = m_TransferFuncMap.begin(); it != m_TransferFuncMap.end();) {
57 auto curr_it = it++; 57 auto curr_it = it++;
58 CPDF_CountedObject<CPDF_TransferFunc>* value = curr_it->second; 58 CFX_WeakPtr<CPDF_TransferFunc>::Handle* value = curr_it->second;
59 if (bRelease || value->use_count() < 2) { 59 if (bRelease || value->use_count() < 2) {
60 delete value->get(); 60 delete value->get();
61 delete value; 61 delete value;
62 m_TransferFuncMap.erase(curr_it); 62 m_TransferFuncMap.erase(curr_it);
63 } 63 }
64 } 64 }
65 } 65 }
66 66
67 CPDF_Type3Cache* CPDF_DocRenderData::GetCachedType3(CPDF_Type3Font* pFont) { 67 CPDF_Type3Cache* CPDF_DocRenderData::GetCachedType3(CPDF_Type3Font* pFont) {
68 CPDF_CountedObject<CPDF_Type3Cache>* pCache; 68 CFX_WeakPtr<CPDF_Type3Cache>::Handle* pCache;
69 auto it = m_Type3FaceMap.find(pFont); 69 auto it = m_Type3FaceMap.find(pFont);
70 if (it == m_Type3FaceMap.end()) { 70 if (it == m_Type3FaceMap.end()) {
71 CPDF_Type3Cache* pType3 = new CPDF_Type3Cache(pFont); 71 CPDF_Type3Cache* pType3 = new CPDF_Type3Cache(pFont);
72 pCache = new CPDF_CountedObject<CPDF_Type3Cache>(pType3); 72 pCache = new CFX_WeakPtr<CPDF_Type3Cache>::Handle(pType3);
73 m_Type3FaceMap[pFont] = pCache; 73 m_Type3FaceMap[pFont] = pCache;
74 } else { 74 } else {
75 pCache = it->second; 75 pCache = it->second;
76 } 76 }
77 return pCache->AddRef(); 77 return pCache->AddRef();
78 } 78 }
79 79
80 void CPDF_DocRenderData::ReleaseCachedType3(CPDF_Type3Font* pFont) { 80 void CPDF_DocRenderData::ReleaseCachedType3(CPDF_Type3Font* pFont) {
81 auto it = m_Type3FaceMap.find(pFont); 81 auto it = m_Type3FaceMap.find(pFont);
82 if (it != m_Type3FaceMap.end()) 82 if (it != m_Type3FaceMap.end())
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 } 1079 }
1080 } 1080 }
1081 } 1081 }
1082 1082
1083 CPDF_TransferFunc* CPDF_DocRenderData::GetTransferFunc(CPDF_Object* pObj) { 1083 CPDF_TransferFunc* CPDF_DocRenderData::GetTransferFunc(CPDF_Object* pObj) {
1084 if (!pObj) 1084 if (!pObj)
1085 return nullptr; 1085 return nullptr;
1086 1086
1087 auto it = m_TransferFuncMap.find(pObj); 1087 auto it = m_TransferFuncMap.find(pObj);
1088 if (it != m_TransferFuncMap.end()) { 1088 if (it != m_TransferFuncMap.end()) {
1089 CPDF_CountedObject<CPDF_TransferFunc>* pTransferCounter = it->second; 1089 CFX_WeakPtr<CPDF_TransferFunc>::Handle* pTransferCounter = it->second;
1090 return pTransferCounter->AddRef(); 1090 return pTransferCounter->AddRef();
1091 } 1091 }
1092 1092
1093 std::unique_ptr<CPDF_Function> pFuncs[3]; 1093 std::unique_ptr<CPDF_Function> pFuncs[3];
1094 FX_BOOL bUniTransfer = TRUE; 1094 FX_BOOL bUniTransfer = TRUE;
1095 FX_BOOL bIdentity = TRUE; 1095 FX_BOOL bIdentity = TRUE;
1096 if (CPDF_Array* pArray = pObj->AsArray()) { 1096 if (CPDF_Array* pArray = pObj->AsArray()) {
1097 bUniTransfer = FALSE; 1097 bUniTransfer = FALSE;
1098 if (pArray->GetCount() < 3) 1098 if (pArray->GetCount() < 3)
1099 return nullptr; 1099 return nullptr;
1100 1100
1101 for (uint32_t i = 0; i < 3; ++i) { 1101 for (uint32_t i = 0; i < 3; ++i) {
1102 pFuncs[2 - i] = CPDF_Function::Load(pArray->GetDirectObjectAt(i)); 1102 pFuncs[2 - i] = CPDF_Function::Load(pArray->GetDirectObjectAt(i));
1103 if (!pFuncs[2 - i]) 1103 if (!pFuncs[2 - i])
1104 return nullptr; 1104 return nullptr;
1105 } 1105 }
1106 } else { 1106 } else {
1107 pFuncs[0] = CPDF_Function::Load(pObj); 1107 pFuncs[0] = CPDF_Function::Load(pObj);
1108 if (!pFuncs[0]) 1108 if (!pFuncs[0])
1109 return nullptr; 1109 return nullptr;
1110 } 1110 }
1111 CPDF_TransferFunc* pTransfer = new CPDF_TransferFunc(m_pPDFDoc); 1111 CPDF_TransferFunc* pTransfer = new CPDF_TransferFunc(m_pPDFDoc);
1112 CPDF_CountedObject<CPDF_TransferFunc>* pTransferCounter = 1112 CFX_WeakPtr<CPDF_TransferFunc>::Handle* pTransferCounter =
1113 new CPDF_CountedObject<CPDF_TransferFunc>(pTransfer); 1113 new CFX_WeakPtr<CPDF_TransferFunc>::Handle(pTransfer);
1114 m_TransferFuncMap[pObj] = pTransferCounter; 1114 m_TransferFuncMap[pObj] = pTransferCounter;
1115 static const int kMaxOutputs = 16; 1115 static const int kMaxOutputs = 16;
1116 FX_FLOAT output[kMaxOutputs]; 1116 FX_FLOAT output[kMaxOutputs];
1117 FXSYS_memset(output, 0, sizeof(output)); 1117 FXSYS_memset(output, 0, sizeof(output));
1118 FX_FLOAT input; 1118 FX_FLOAT input;
1119 int noutput; 1119 int noutput;
1120 for (int v = 0; v < 256; ++v) { 1120 for (int v = 0; v < 256; ++v) {
1121 input = (FX_FLOAT)v / 255.0f; 1121 input = (FX_FLOAT)v / 255.0f;
1122 if (bUniTransfer) { 1122 if (bUniTransfer) {
1123 if (pFuncs[0] && pFuncs[0]->CountOutputs() <= kMaxOutputs) 1123 if (pFuncs[0] && pFuncs[0]->CountOutputs() <= kMaxOutputs)
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1280 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, 1280 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left,
1281 m_Rect.top, m_Rect.Width(), m_Rect.Height()); 1281 m_Rect.top, m_Rect.Width(), m_Rect.Height());
1282 } 1282 }
1283 } 1283 }
1284 1284
1285 #if defined _SKIA_SUPPORT_ 1285 #if defined _SKIA_SUPPORT_
1286 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { 1286 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const {
1287 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); 1287 m_pDevice->DebugVerifyBitmapIsPreMultiplied();
1288 } 1288 }
1289 #endif 1289 #endif
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/pageint.h ('k') | core/fpdfapi/fpdf_render/render_int.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698