Chromium Code Reviews| 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 <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 827 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 838 pTrailer->GetElement(FX_BSTRC("Root")); | 838 pTrailer->GetElement(FX_BSTRC("Root")); |
| 839 CPDF_Reference* pRef = ToReference(pRoot); | 839 CPDF_Reference* pRef = ToReference(pRoot); |
| 840 if (!pRoot || | 840 if (!pRoot || |
| 841 (pRef && | 841 (pRef && |
| 842 (FX_DWORD)m_CrossRef.GetSize() > | 842 (FX_DWORD)m_CrossRef.GetSize() > |
| 843 pRef->GetRefObjNum() && | 843 pRef->GetRefObjNum() && |
| 844 m_CrossRef.GetAt(pRef->GetRefObjNum()) != 0)) { | 844 m_CrossRef.GetAt(pRef->GetRefObjNum()) != 0)) { |
| 845 FX_POSITION pos = pTrailer->GetStartPos(); | 845 FX_POSITION pos = pTrailer->GetStartPos(); |
| 846 while (pos) { | 846 while (pos) { |
| 847 CFX_ByteString key; | 847 CFX_ByteString key; |
| 848 CPDF_Object* pObj = | 848 CPDF_Object* pElement = |
|
Lei Zhang
2015/10/26 21:58:22
This is a shadow variable. This function is a bit
| |
| 849 pTrailer->GetNextElement(pos, key); | 849 pTrailer->GetNextElement(pos, key); |
| 850 m_pTrailer->SetAt(key, pObj->Clone(), m_pDocument); | 850 FX_DWORD dwObjNum = pElement->GetObjNum(); |
| 851 if (dwObjNum) { | |
| 852 m_pTrailer->SetAtReference(key, m_pDocument, | |
| 853 dwObjNum); | |
| 854 } else { | |
| 855 m_pTrailer->SetAt(key, pElement->Clone()); | |
| 856 } | |
| 851 } | 857 } |
| 852 pObj->Release(); | 858 pObj->Release(); |
| 853 } else { | 859 } else { |
| 854 pObj->Release(); | 860 pObj->Release(); |
| 855 } | 861 } |
| 856 } else { | 862 } else { |
| 857 if (pObj->IsStream()) { | 863 if (pObj->IsStream()) { |
| 858 m_pTrailer = ToDictionary(pTrailer->Clone()); | 864 m_pTrailer = ToDictionary(pTrailer->Clone()); |
| 859 pObj->Release(); | 865 pObj->Release(); |
| 860 } else { | 866 } else { |
| (...skipping 3712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4573 return FALSE; | 4579 return FALSE; |
| 4574 } | 4580 } |
| 4575 CPDF_PageNode::~CPDF_PageNode() { | 4581 CPDF_PageNode::~CPDF_PageNode() { |
| 4576 int32_t iSize = m_childNode.GetSize(); | 4582 int32_t iSize = m_childNode.GetSize(); |
| 4577 for (int32_t i = 0; i < iSize; ++i) { | 4583 for (int32_t i = 0; i < iSize; ++i) { |
| 4578 CPDF_PageNode* pNode = (CPDF_PageNode*)m_childNode[i]; | 4584 CPDF_PageNode* pNode = (CPDF_PageNode*)m_childNode[i]; |
| 4579 delete pNode; | 4585 delete pNode; |
| 4580 } | 4586 } |
| 4581 m_childNode.RemoveAll(); | 4587 m_childNode.RemoveAll(); |
| 4582 } | 4588 } |
| OLD | NEW |