From 28f97ff783c16f3391384ce97b765ce4eb310ac7 Mon Sep 17 00:00:00 2001 From: tsepez Date: Mon, 4 Apr 2016 16:41:35 -0700 Subject: Make down-conversion explicit from CFX_ByteString to CFX_ByteStringC. Having this happen implicitly can be dangerous because the lifetime has to be considered; we should have caught the "red bots" in https://codereview.chromium.org/1847333004/#ps60001 at compile time. Review URL: https://codereview.chromium.org/1853233002 --- core/fpdfapi/fpdf_page/cpdf_allstates.cpp | 2 +- core/fpdfapi/fpdf_page/fpdf_page_doc.cpp | 2 +- core/fpdfapi/fpdf_page/fpdf_page_parser.cpp | 28 ++++++++++++++----------- core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) (limited to 'core/fpdfapi/fpdf_page') diff --git a/core/fpdfapi/fpdf_page/cpdf_allstates.cpp b/core/fpdfapi/fpdf_page/cpdf_allstates.cpp index 159de584ee..d81a488d20 100644 --- a/core/fpdfapi/fpdf_page/cpdf_allstates.cpp +++ b/core/fpdfapi/fpdf_page/cpdf_allstates.cpp @@ -115,7 +115,7 @@ void CPDF_AllStates::ProcessExtGS(CPDF_Dictionary* pGS, CFX_ByteString mode = pArray ? pArray->GetStringAt(0) : pObject->GetString(); - pGeneralState->SetBlendMode(mode); + pGeneralState->SetBlendMode(mode.AsByteStringC()); if (pGeneralState->m_BlendType > FXDIB_BLEND_MULTIPLY) { pParser->GetPageObjectHolder()->SetBackgroundAlphaNeeded(TRUE); } diff --git a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp index 9f4ad5a7d5..758ce940d2 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp @@ -331,7 +331,7 @@ CPDF_ColorSpace* CPDF_DocPageData::GetColorSpace( if (!pCS && pResources) { CPDF_Dictionary* pList = pResources->GetDictBy("ColorSpace"); if (pList) { - pCSObj = pList->GetDirectObjectBy(name); + pCSObj = pList->GetDirectObjectBy(name.AsByteStringC()); return GetColorSpace(pCSObj, nullptr); } } diff --git a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp index daddb9f05b..4f304a3b3b 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp @@ -566,9 +566,9 @@ void CPDF_StreamContentParser::Handle_BeginImage() { if (!key.IsEmpty()) { uint32_t dwObjNum = pObj ? pObj->GetObjNum() : 0; if (dwObjNum) - pDict->SetAtReference(key, m_pDocument, dwObjNum); + pDict->SetAtReference(key.AsByteStringC(), m_pDocument, dwObjNum); else - pDict->SetAt(key, pObj.release()); + pDict->SetAt(key.AsByteStringC(), pObj.release()); } } PDF_ReplaceAbbr(pDict); @@ -721,7 +721,8 @@ void CPDF_StreamContentParser::Handle_ExecuteXObject() { pList = m_pPageResources->GetDictBy("XObject"); if (!pList) return; - CPDF_Reference* pRes = ToReference(pList->GetObjectBy(name)); + CPDF_Reference* pRes = + ToReference(pList->GetObjectBy(name.AsByteStringC())); if (!pRes) return; @@ -1257,7 +1258,7 @@ CPDF_Object* CPDF_StreamContentParser::FindResourceObj( if (!pList) { return NULL; } - CPDF_Object* pRes = pList->GetDirectObjectBy(name); + CPDF_Object* pRes = pList->GetDirectObjectBy(name.AsByteStringC()); return pRes; } CPDF_Dictionary* pList = m_pResources->GetDictBy(type); @@ -1269,10 +1270,10 @@ CPDF_Object* CPDF_StreamContentParser::FindResourceObj( if (!pList) { return NULL; } - CPDF_Object* pRes = pList->GetDirectObjectBy(name); + CPDF_Object* pRes = pList->GetDirectObjectBy(name.AsByteStringC()); return pRes; } - CPDF_Object* pRes = pList->GetDirectObjectBy(name); + CPDF_Object* pRes = pList->GetDirectObjectBy(name.AsByteStringC()); return pRes; } @@ -1763,8 +1764,9 @@ void PDF_ReplaceAbbr(CPDF_Object* pObj) { for (const auto& it : *pDict) { CFX_ByteString key = it.first; CPDF_Object* value = it.second; - CFX_ByteStringC fullname = PDF_FindFullName( - PDF_InlineKeyAbbr, FX_ArraySize(PDF_InlineKeyAbbr), key); + CFX_ByteStringC fullname = + PDF_FindFullName(PDF_InlineKeyAbbr, FX_ArraySize(PDF_InlineKeyAbbr), + key.AsByteStringC()); if (!fullname.IsEmpty()) { AbbrReplacementOp op; op.is_replace_key = true; @@ -1777,7 +1779,8 @@ void PDF_ReplaceAbbr(CPDF_Object* pObj) { if (value->IsName()) { CFX_ByteString name = value->GetString(); fullname = PDF_FindFullName(PDF_InlineValueAbbr, - FX_ArraySize(PDF_InlineValueAbbr), name); + FX_ArraySize(PDF_InlineValueAbbr), + name.AsByteStringC()); if (!fullname.IsEmpty()) { AbbrReplacementOp op; op.is_replace_key = false; @@ -1791,9 +1794,9 @@ void PDF_ReplaceAbbr(CPDF_Object* pObj) { } for (const auto& op : replacements) { if (op.is_replace_key) - pDict->ReplaceKey(op.key, op.replacement); + pDict->ReplaceKey(op.key.AsByteStringC(), op.replacement); else - pDict->SetAtName(op.key, op.replacement); + pDict->SetAtName(op.key.AsByteStringC(), op.replacement); } break; } @@ -1804,7 +1807,8 @@ void PDF_ReplaceAbbr(CPDF_Object* pObj) { if (pElement->IsName()) { CFX_ByteString name = pElement->GetString(); CFX_ByteStringC fullname = PDF_FindFullName( - PDF_InlineValueAbbr, FX_ArraySize(PDF_InlineValueAbbr), name); + PDF_InlineValueAbbr, FX_ArraySize(PDF_InlineValueAbbr), + name.AsByteStringC()); if (!fullname.IsEmpty()) { pArray->SetAt(i, new CPDF_Name(fullname)); } diff --git a/core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp b/core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp index a5db2d6d20..a3c88c00df 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp @@ -427,7 +427,7 @@ CPDF_Object* CPDF_StreamParser::ReadNextObject(FX_BOOL bAllowNestedArray, return nullptr; } if (!key.IsEmpty()) { - pDict->SetAt(key, pObj); + pDict->SetAt(key.AsByteStringC(), pObj); } else { pObj->Release(); } -- cgit v1.2.3