OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/include/fpdfapi/fpdf_parser.h" | 7 #include "core/include/fpdfapi/fpdf_parser.h" |
8 | 8 |
9 #include "core/include/fxcrt/fx_string.h" | 9 #include "core/include/fxcrt/fx_string.h" |
10 | 10 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 return nullptr; | 154 return nullptr; |
155 } | 155 } |
156 } | 156 } |
157 | 157 |
158 CPDF_Array* CPDF_Object::GetArray() const { | 158 CPDF_Array* CPDF_Object::GetArray() const { |
159 // The method should be made non-const if we want to not be const. | 159 // The method should be made non-const if we want to not be const. |
160 // See bug #234. | 160 // See bug #234. |
161 return const_cast<CPDF_Array*>(AsArray()); | 161 return const_cast<CPDF_Array*>(AsArray()); |
162 } | 162 } |
163 void CPDF_Object::SetString(const CFX_ByteString& str) { | 163 void CPDF_Object::SetString(const CFX_ByteString& str) { |
164 ASSERT(this != NULL); | |
165 switch (m_Type) { | 164 switch (m_Type) { |
166 case PDFOBJ_BOOLEAN: | 165 case PDFOBJ_BOOLEAN: |
167 AsBoolean()->m_bValue = (str == "true"); | 166 AsBoolean()->m_bValue = (str == "true"); |
168 return; | 167 return; |
169 case PDFOBJ_NUMBER: | 168 case PDFOBJ_NUMBER: |
170 AsNumber()->SetString(str); | 169 AsNumber()->SetString(str); |
171 return; | 170 return; |
172 case PDFOBJ_STRING: | 171 case PDFOBJ_STRING: |
173 AsString()->m_String = str; | 172 AsString()->m_String = str; |
174 return; | 173 return; |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 pOld->Release(); | 518 pOld->Release(); |
520 if (pObj->GetObjNum()) { | 519 if (pObj->GetObjNum()) { |
521 ASSERT(pObjs); | 520 ASSERT(pObjs); |
522 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); | 521 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
523 } | 522 } |
524 m_Objects.SetAt(i, pObj); | 523 m_Objects.SetAt(i, pObj); |
525 } | 524 } |
526 void CPDF_Array::InsertAt(FX_DWORD index, | 525 void CPDF_Array::InsertAt(FX_DWORD index, |
527 CPDF_Object* pObj, | 526 CPDF_Object* pObj, |
528 CPDF_IndirectObjects* pObjs) { | 527 CPDF_IndirectObjects* pObjs) { |
529 ASSERT(pObj != NULL); | |
530 if (pObj->GetObjNum()) { | 528 if (pObj->GetObjNum()) { |
531 ASSERT(pObjs != NULL); | 529 ASSERT(pObjs); |
532 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); | 530 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
533 } | 531 } |
534 m_Objects.InsertAt(index, pObj); | 532 m_Objects.InsertAt(index, pObj); |
535 } | 533 } |
536 void CPDF_Array::Add(CPDF_Object* pObj, CPDF_IndirectObjects* pObjs) { | 534 void CPDF_Array::Add(CPDF_Object* pObj, CPDF_IndirectObjects* pObjs) { |
537 ASSERT(pObj != NULL); | |
538 if (pObj->GetObjNum()) { | 535 if (pObj->GetObjNum()) { |
539 ASSERT(pObjs != NULL); | 536 ASSERT(pObjs); |
540 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); | 537 pObj = new CPDF_Reference(pObjs, pObj->GetObjNum()); |
541 } | 538 } |
542 m_Objects.Add(pObj); | 539 m_Objects.Add(pObj); |
543 } | 540 } |
544 void CPDF_Array::AddName(const CFX_ByteString& str) { | 541 void CPDF_Array::AddName(const CFX_ByteString& str) { |
545 ASSERT(IsArray()); | 542 ASSERT(IsArray()); |
546 Add(new CPDF_Name(str)); | 543 Add(new CPDF_Name(str)); |
547 } | 544 } |
548 void CPDF_Array::AddString(const CFX_ByteString& str) { | 545 void CPDF_Array::AddString(const CFX_ByteString& str) { |
549 ASSERT(IsArray()); | 546 ASSERT(IsArray()); |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 } | 1170 } |
1174 pObj->m_ObjNum = objnum; | 1171 pObj->m_ObjNum = objnum; |
1175 m_IndirectObjs.SetAt((void*)(uintptr_t)objnum, pObj); | 1172 m_IndirectObjs.SetAt((void*)(uintptr_t)objnum, pObj); |
1176 if (m_LastObjNum < objnum) | 1173 if (m_LastObjNum < objnum) |
1177 m_LastObjNum = objnum; | 1174 m_LastObjNum = objnum; |
1178 return TRUE; | 1175 return TRUE; |
1179 } | 1176 } |
1180 FX_DWORD CPDF_IndirectObjects::GetLastObjNum() const { | 1177 FX_DWORD CPDF_IndirectObjects::GetLastObjNum() const { |
1181 return m_LastObjNum; | 1178 return m_LastObjNum; |
1182 } | 1179 } |
OLD | NEW |