Chromium Code Reviews| Index: core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp |
| diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp |
| index b86d00851cfcdb216c06a75a145b82661177a0ff..e2445dba3d00098569154d6592c9e4da9fb1c512 100644 |
| --- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp |
| +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp |
| @@ -77,11 +77,10 @@ void CPDF_StreamContentParser::Handle_BeginImage() { |
| } |
| CFX_ByteString key((const FX_CHAR*)m_pSyntax->GetWordBuf() + 1, |
| m_pSyntax->GetWordSize() - 1); |
| - CPDF_Object* pObj = m_pSyntax->ReadNextObject(); |
| + nonstd::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> pObj( |
|
Tom Sepez
2015/10/24 16:50:01
Is there a point at even constructing an object if
Lei Zhang
2015/10/26 21:58:22
I guess that's the only point.
|
| + m_pSyntax->ReadNextObject()); |
| if (!key.IsEmpty()) { |
| - pDict->SetAt(key, pObj, m_pDocument); |
| - } else if (pObj) { |
| - pObj->Release(); |
| + pDict->SetAtWithIndirect(key, pObj.release(), m_pDocument); |
| } |
| } |
| _PDF_ReplaceAbbr(pDict); |
| @@ -95,7 +94,7 @@ void CPDF_StreamContentParser::Handle_BeginImage() { |
| pCSObj = FindResourceObj(FX_BSTRC("ColorSpace"), name); |
| if (pCSObj && !pCSObj->GetObjNum()) { |
| pCSObj = pCSObj->Clone(); |
| - pDict->SetAt(FX_BSTRC("ColorSpace"), pCSObj, m_pDocument); |
| + pDict->SetAtWithIndirect(FX_BSTRC("ColorSpace"), pCSObj, m_pDocument); |
| } |
| } |
| } |