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

Unified Diff: core/src/fxcodec/codec/fx_codec_icc.cpp

Issue 1297723002: CFX_MapByteStringToPtr considered harmful. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Separate reload & delete. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: core/src/fxcodec/codec/fx_codec_icc.cpp
diff --git a/core/src/fxcodec/codec/fx_codec_icc.cpp b/core/src/fxcodec/codec/fx_codec_icc.cpp
index 856766e4ea65aedbada070a827f37634ba96cad4..20bd0a017c7502e84c81af53e77b8d268d161c0e 100644
--- a/core/src/fxcodec/codec/fx_codec_icc.cpp
+++ b/core/src/fxcodec/codec/fx_codec_icc.cpp
@@ -436,7 +436,8 @@ void* CCodec_IccModule::CreateProfile(ICodec_IccModule::IccParam* pIccParam,
CFX_ByteString ProfileKey(key.GetBuffer(), key.GetSize());
ASSERT(pTransformKey);
pTransformKey->AppendBlock(ProfileKey.GetBuffer(0), ProfileKey.GetLength());
- if (!m_MapProfile.Lookup(ProfileKey, (void*&)pCache)) {
+ auto it = m_MapProfile.find(ProfileKey);
+ if (it == m_MapProfile.end()) {
pCache = new CFX_IccProfileCache;
switch (pIccParam->dwProfileType) {
case Icc_PARAMTYPE_BUFFER:
@@ -458,8 +459,9 @@ void* CCodec_IccModule::CreateProfile(ICodec_IccModule::IccParam* pIccParam,
default:
break;
}
- m_MapProfile.SetAt(ProfileKey, pCache);
+ m_MapProfile[ProfileKey] = pCache;
} else {
+ pCache = it->second;
pCache->m_dwRate++;
}
return pCache->m_pProfile;
@@ -498,7 +500,8 @@ void* CCodec_IccModule::CreateTransform(
<< (pProofProfile != NULL) << dwPrfIntent << dwPrfFlag;
CFX_ByteStringC TransformKey(key.GetBuffer(), key.GetSize());
CFX_IccTransformCache* pTransformCache;
- if (!m_MapTranform.Lookup(TransformKey, (void*&)pTransformCache)) {
+ auto it = m_MapTranform.find(TransformKey);
+ if (it == m_MapTranform.end()) {
pCmm = FX_Alloc(CLcmsCmm, 1);
pCmm->m_nSrcComponents = T_CHANNELS(dwInputProfileType);
pCmm->m_nDstComponents = T_CHANNELS(dwOutputProfileType);
@@ -514,25 +517,25 @@ void* CCodec_IccModule::CreateTransform(
dwOutputProfileType, dwIntent, dwFlag);
}
pCmm->m_hTransform = pTransformCache->m_pIccTransform;
- m_MapTranform.SetAt(TransformKey, pTransformCache);
+ m_MapTranform[TransformKey] = pTransformCache;
} else {
+ pTransformCache = it->second;
pTransformCache->m_dwRate++;
}
return pTransformCache->m_pCmm;
}
CCodec_IccModule::~CCodec_IccModule() {
- FX_POSITION pos = m_MapProfile.GetStartPosition();
- CFX_ByteString key;
- CFX_IccProfileCache* pProfileCache;
- while (pos) {
- m_MapProfile.GetNextAssoc(pos, key, (void*&)pProfileCache);
- delete pProfileCache;
+ auto profile_it = m_MapProfile.begin();
+ while (profile_it != m_MapProfile.end()) {
Lei Zhang 2015/08/15 00:47:33 Range-Based For Loops here and below?
Tom Sepez 2015/08/17 20:15:25 Done.
+ auto temp = profile_it++;
+ delete temp->second;
+ m_MapProfile.erase(temp);
}
- pos = m_MapTranform.GetStartPosition();
- CFX_IccTransformCache* pTransformCache;
- while (pos) {
- m_MapTranform.GetNextAssoc(pos, key, (void*&)pTransformCache);
- delete pTransformCache;
+ auto transform_it = m_MapTranform.begin();
+ while (transform_it != m_MapTranform.end()) {
+ auto temp = transform_it++;
+ delete temp->second;
+ m_MapTranform.erase(temp);
}
}
void* CCodec_IccModule::CreateTransform_sRGB(const uint8_t* pProfileData,

Powered by Google App Engine
This is Rietveld 408576698