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 "../include/fpdfppo.h" | 7 #include "../include/fpdfppo.h" |
8 #include "../include/fsdk_define.h" | 8 #include "../include/fsdk_define.h" |
9 | 9 |
10 class CPDF_PageOrganizer | 10 class CPDF_PageOrganizer |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 if(!pParent || pParent->GetType() != PDFOBJ_DICTIONARY) return NULL; | 208 if(!pParent || pParent->GetType() != PDFOBJ_DICTIONARY) return NULL; |
209 | 209 |
210 CPDF_Dictionary* pp = (CPDF_Dictionary*)pParent; | 210 CPDF_Dictionary* pp = (CPDF_Dictionary*)pParent; |
211 | 211 |
212 if(pDict->KeyExist((const char*)nSrctag)) | 212 if(pDict->KeyExist((const char*)nSrctag)) |
213 return pDict->GetElement((const char*)nSrctag); | 213 return pDict->GetElement((const char*)nSrctag); |
214 while (pp) | 214 while (pp) |
215 { | 215 { |
216 if(pp->KeyExist((const char*)nSrctag)) | 216 if(pp->KeyExist((const char*)nSrctag)) |
217 return pp->GetElement((const char*)nSrctag); | 217 return pp->GetElement((const char*)nSrctag); |
218 » » else if(pp->KeyExist("Parent")) | 218 » » else if (pp->KeyExist("Parent")) |
| 219 » » { |
219 pp = (CPDF_Dictionary*)pp->GetElement("Parent")->GetDire
ct(); | 220 pp = (CPDF_Dictionary*)pp->GetElement("Parent")->GetDire
ct(); |
| 221 if (pp->GetType() == PDFOBJ_NULL) break; |
| 222 } |
220 else break; | 223 else break; |
221 } | 224 } |
222 | 225 |
223 return NULL; | 226 return NULL; |
224 } | 227 } |
225 | 228 |
226 FX_BOOL CPDF_PageOrganizer::UpdateReference(CPDF_Object *pObj, CPDF_Document *pD
oc, | 229 FX_BOOL CPDF_PageOrganizer::UpdateReference(CPDF_Object *pObj, CPDF_Document *pD
oc, |
227
CFX_MapPtrToPtr* pMapPtrToPtr) | 230
CFX_MapPtrToPtr* pMapPtrToPtr) |
228 { | 231 { |
229 switch (pObj->GetType()) | 232 switch (pObj->GetType()) |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 if(!pSrcDict) | 455 if(!pSrcDict) |
453 return FALSE; | 456 return FALSE; |
454 CPDF_Document* pDstDoc = (CPDF_Document*)dest_doc; | 457 CPDF_Document* pDstDoc = (CPDF_Document*)dest_doc; |
455 CPDF_Dictionary* pDstDict = pDstDoc->GetRoot(); | 458 CPDF_Dictionary* pDstDict = pDstDoc->GetRoot(); |
456 if(!pDstDict) | 459 if(!pDstDict) |
457 return FALSE; | 460 return FALSE; |
458 pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE)); | 461 pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE)); |
459 return TRUE; | 462 return TRUE; |
460 } | 463 } |
461 | 464 |
OLD | NEW |