Chromium Code Reviews| Index: core/fpdfapi/fpdf_parser/cpdf_array.cpp |
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_array.cpp b/core/fpdfapi/fpdf_parser/cpdf_array.cpp |
| index 5e103fa423ccd7cdba685bb8c6ad61fca0696258..da935af47ddbdfe912445d283932605a3223a2c0 100644 |
| --- a/core/fpdfapi/fpdf_parser/cpdf_array.cpp |
| +++ b/core/fpdfapi/fpdf_parser/cpdf_array.cpp |
| @@ -13,6 +13,7 @@ |
| #include "core/fpdfapi/fpdf_parser/include/cpdf_reference.h" |
| #include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h" |
| #include "core/fpdfapi/fpdf_parser/include/cpdf_string.h" |
| +#include "third_party/base/logging.h" |
| #include "third_party/base/stl_util.h" |
| CPDF_Array::CPDF_Array() {} |
| @@ -145,30 +146,22 @@ void CPDF_Array::RemoveAt(size_t i, size_t nCount) { |
| m_Objects.erase(m_Objects.begin() + i, m_Objects.begin() + i + nCount); |
| } |
| -void CPDF_Array::SetAt(size_t i, |
| - CPDF_Object* pObj, |
| - CPDF_IndirectObjectHolder* pObjs) { |
| +void CPDF_Array::SetAt(size_t i, CPDF_Object* pObj) { |
| ASSERT(IsArray()); |
| + CHECK(!pObj || pObj->GetObjNum() == 0); |
| if (i >= m_Objects.size()) { |
| ASSERT(false); |
| return; |
| } |
| if (CPDF_Object* pOld = m_Objects[i]) |
| pOld->Release(); |
| - if (pObj->GetObjNum()) { |
| - ASSERT(pObjs); |
| - pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
| - } |
| + |
| m_Objects[i] = pObj; |
| } |
| -void CPDF_Array::InsertAt(size_t index, |
| - CPDF_Object* pObj, |
| - CPDF_IndirectObjectHolder* pObjs) { |
| - if (pObj->GetObjNum()) { |
| - ASSERT(pObjs); |
| - pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
| - } |
| +void CPDF_Array::InsertAt(size_t index, CPDF_Object* pObj) { |
| + ASSERT(IsArray()); |
| + CHECK(!pObj || pObj->GetObjNum() == 0); |
| if (index >= m_Objects.size()) { |
| // Allocate space first. |
| m_Objects.resize(index + 1, nullptr); |
| @@ -179,37 +172,29 @@ void CPDF_Array::InsertAt(size_t index, |
| } |
| } |
| -void CPDF_Array::Add(CPDF_Object* pObj, CPDF_IndirectObjectHolder* pObjs) { |
| - if (pObj->GetObjNum()) { |
| - ASSERT(pObjs); |
| - pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
| - } |
| +void CPDF_Array::Add(CPDF_Object* pObj) { |
| + ASSERT(IsArray()); |
| + CHECK(!pObj || pObj->GetObjNum() == 0); |
| m_Objects.push_back(pObj); |
| } |
| void CPDF_Array::AddName(const CFX_ByteString& str) { |
| - ASSERT(IsArray()); |
| Add(new CPDF_Name(str)); |
| } |
| void CPDF_Array::AddString(const CFX_ByteString& str) { |
| - ASSERT(IsArray()); |
| Add(new CPDF_String(str, FALSE)); |
| } |
| void CPDF_Array::AddInteger(int i) { |
| - ASSERT(IsArray()); |
| Add(new CPDF_Number(i)); |
| } |
| void CPDF_Array::AddNumber(FX_FLOAT f) { |
| - ASSERT(IsArray()); |
| - CPDF_Number* pNumber = new CPDF_Number(f); |
| - Add(pNumber); |
| + Add(new CPDF_Number(f)); |
| } |
| void CPDF_Array::AddReference(CPDF_IndirectObjectHolder* pDoc, |
| uint32_t objnum) { |
| - ASSERT(IsArray()); |
|
dsinclair
2016/09/20 19:32:18
Why remove the asserts?
Tom Sepez
2016/09/20 20:07:22
I moved it to Add(). No sense in having it in N p
|
| Add(new CPDF_Reference(pDoc, objnum)); |
| } |