Commit 963574f27f99fef0688dbc3c276a2881aed79c4e

Authored by m-holger
1 parent f4e468b1

Refactor QPDFOutlineDocumentHelper::resolveNamedDest

libqpdf/QPDFOutlineDocumentHelper.cc
... ... @@ -68,30 +68,25 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name)
68 68 QPDFObjectHandle result;
69 69 if (name.isName()) {
70 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 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 83 if (m->names_dest->findObject(name.getUTF8Value(), result)) {
89 84 QTC::TC("qpdf", "QPDFOutlineDocumentHelper string named dest");
90 85 }
91 86 }
92 87 }
93 88 if (!result.isInitialized()) {
94   - result = QPDFObjectHandle::newNull();
  89 + return QPDFObjectHandle::newNull();
95 90 }
96 91 return result;
97 92 }
... ...