Commit 963574f27f99fef0688dbc3c276a2881aed79c4e

Authored by m-holger
1 parent f4e468b1

Refactor QPDFOutlineDocumentHelper::resolveNamedDest

libqpdf/QPDFOutlineDocumentHelper.cc
@@ -68,30 +68,25 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name) @@ -68,30 +68,25 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name)
68 QPDFObjectHandle result; 68 QPDFObjectHandle result;
69 if (name.isName()) { 69 if (name.isName()) {
70 if (!m->dest_dict.isInitialized()) { 70 if (!m->dest_dict.isInitialized()) {
71 - m->dest_dict = this->qpdf.getRoot().getKey("/Dests");  
72 - }  
73 - if (m->dest_dict.isDictionary()) {  
74 - QTC::TC("qpdf", "QPDFOutlineDocumentHelper name named dest");  
75 - result = m->dest_dict.getKey(name.getName()); 71 + m->dest_dict = qpdf.getRoot().getKey("/Dests");
76 } 72 }
  73 + QTC::TC("qpdf", "QPDFOutlineDocumentHelper name named dest");
  74 + result= m->dest_dict.getKeyIfDict(name.getName());
77 } else if (name.isString()) { 75 } else if (name.isString()) {
78 - if (nullptr == m->names_dest) {  
79 - QPDFObjectHandle names = this->qpdf.getRoot().getKey("/Names");  
80 - if (names.isDictionary()) {  
81 - QPDFObjectHandle dests = names.getKey("/Dests");  
82 - if (dests.isDictionary()) {  
83 - m->names_dest = std::make_shared<QPDFNameTreeObjectHelper>(dests, this->qpdf);  
84 - } 76 + if (!m->names_dest) {
  77 + auto dests = qpdf.getRoot().getKey("/Names").getKeyIfDict("/Dests");
  78 + if (dests.isDictionary()) {
  79 + m->names_dest = std::make_shared<QPDFNameTreeObjectHelper>(dests, qpdf);
85 } 80 }
86 } 81 }
87 - if (m->names_dest.get()) { 82 + if (m->names_dest) {
88 if (m->names_dest->findObject(name.getUTF8Value(), result)) { 83 if (m->names_dest->findObject(name.getUTF8Value(), result)) {
89 QTC::TC("qpdf", "QPDFOutlineDocumentHelper string named dest"); 84 QTC::TC("qpdf", "QPDFOutlineDocumentHelper string named dest");
90 } 85 }
91 } 86 }
92 } 87 }
93 if (!result.isInitialized()) { 88 if (!result.isInitialized()) {
94 - result = QPDFObjectHandle::newNull(); 89 + return QPDFObjectHandle::newNull();
95 } 90 }
96 return result; 91 return result;
97 } 92 }