| Index: core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| index 8043f932bbe713ac870c1f166f689f0161e2bf0e..0fdcb92ae1c77b064181ecf3b35e6f4334dc175e 100644
|
| --- a/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| +++ b/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| @@ -45,7 +45,7 @@ CPDF_DocRenderData::~CPDF_DocRenderData() {
|
| void CPDF_DocRenderData::Clear(FX_BOOL bRelease) {
|
| for (auto it = m_Type3FaceMap.begin(); it != m_Type3FaceMap.end();) {
|
| auto curr_it = it++;
|
| - CPDF_CountedObject<CPDF_Type3Cache>* cache = curr_it->second;
|
| + CFX_WeakPtr<CPDF_Type3Cache>::Handle* cache = curr_it->second;
|
| if (bRelease || cache->use_count() < 2) {
|
| delete cache->get();
|
| delete cache;
|
| @@ -55,7 +55,7 @@ void CPDF_DocRenderData::Clear(FX_BOOL bRelease) {
|
|
|
| for (auto it = m_TransferFuncMap.begin(); it != m_TransferFuncMap.end();) {
|
| auto curr_it = it++;
|
| - CPDF_CountedObject<CPDF_TransferFunc>* value = curr_it->second;
|
| + CFX_WeakPtr<CPDF_TransferFunc>::Handle* value = curr_it->second;
|
| if (bRelease || value->use_count() < 2) {
|
| delete value->get();
|
| delete value;
|
| @@ -65,11 +65,11 @@ void CPDF_DocRenderData::Clear(FX_BOOL bRelease) {
|
| }
|
|
|
| CPDF_Type3Cache* CPDF_DocRenderData::GetCachedType3(CPDF_Type3Font* pFont) {
|
| - CPDF_CountedObject<CPDF_Type3Cache>* pCache;
|
| + CFX_WeakPtr<CPDF_Type3Cache>::Handle* pCache;
|
| auto it = m_Type3FaceMap.find(pFont);
|
| if (it == m_Type3FaceMap.end()) {
|
| CPDF_Type3Cache* pType3 = new CPDF_Type3Cache(pFont);
|
| - pCache = new CPDF_CountedObject<CPDF_Type3Cache>(pType3);
|
| + pCache = new CFX_WeakPtr<CPDF_Type3Cache>::Handle(pType3);
|
| m_Type3FaceMap[pFont] = pCache;
|
| } else {
|
| pCache = it->second;
|
| @@ -1086,7 +1086,7 @@ CPDF_TransferFunc* CPDF_DocRenderData::GetTransferFunc(CPDF_Object* pObj) {
|
|
|
| auto it = m_TransferFuncMap.find(pObj);
|
| if (it != m_TransferFuncMap.end()) {
|
| - CPDF_CountedObject<CPDF_TransferFunc>* pTransferCounter = it->second;
|
| + CFX_WeakPtr<CPDF_TransferFunc>::Handle* pTransferCounter = it->second;
|
| return pTransferCounter->AddRef();
|
| }
|
|
|
| @@ -1109,8 +1109,8 @@ CPDF_TransferFunc* CPDF_DocRenderData::GetTransferFunc(CPDF_Object* pObj) {
|
| return nullptr;
|
| }
|
| CPDF_TransferFunc* pTransfer = new CPDF_TransferFunc(m_pPDFDoc);
|
| - CPDF_CountedObject<CPDF_TransferFunc>* pTransferCounter =
|
| - new CPDF_CountedObject<CPDF_TransferFunc>(pTransfer);
|
| + CFX_WeakPtr<CPDF_TransferFunc>::Handle* pTransferCounter =
|
| + new CFX_WeakPtr<CPDF_TransferFunc>::Handle(pTransfer);
|
| m_TransferFuncMap[pObj] = pTransferCounter;
|
| static const int kMaxOutputs = 16;
|
| FX_FLOAT output[kMaxOutputs];
|
|
|