Commit 3b87d569cba91cfbaefa1e1a1aa1e5ae97bede9b

Authored by m-holger
1 parent f110a23c

Refactor `NNTreeIterator::insertAfter`: use `const` references for parameters, r…

…eplace `getArrayNItems` with `size`, and improve error handling logic.
libqpdf/NNTree.cc
@@ -390,7 +390,7 @@ NNTreeIterator::lastPathElement() @@ -390,7 +390,7 @@ NNTreeIterator::lastPathElement()
390 } 390 }
391 391
392 void 392 void
393 -NNTreeIterator::insertAfter(QPDFObjectHandle key, QPDFObjectHandle value) 393 +NNTreeIterator::insertAfter(QPDFObjectHandle const& key, QPDFObjectHandle const& value)
394 { 394 {
395 if (!valid()) { 395 if (!valid()) {
396 QTC::TC("qpdf", "NNTree insertAfter inserts first"); 396 QTC::TC("qpdf", "NNTree insertAfter inserts first");
@@ -400,10 +400,11 @@ NNTreeIterator::insertAfter(QPDFObjectHandle key, QPDFObjectHandle value) @@ -400,10 +400,11 @@ NNTreeIterator::insertAfter(QPDFObjectHandle key, QPDFObjectHandle value)
400 } 400 }
401 401
402 auto items = node.getKey(impl.details.itemsKey()); 402 auto items = node.getKey(impl.details.itemsKey());
403 - if (!items.isArray()) {  
404 - impl.error(node, "node contains no items array");  
405 - }  
406 - if (items.getArrayNItems() < item_number + 2) { 403 +
  404 + if (std::cmp_less(items.size(), item_number + 2)) {
  405 + if (!items.isArray()) {
  406 + impl.error(node, "node contains no items array");
  407 + }
407 impl.error(node, "insert: items array is too short"); 408 impl.error(node, "insert: items array is too short");
408 } 409 }
409 items.insertItem(item_number + 2, key); 410 items.insertItem(item_number + 2, key);
libqpdf/qpdf/NNTree.hh
@@ -56,7 +56,7 @@ class NNTreeIterator @@ -56,7 +56,7 @@ class NNTreeIterator
56 return !operator==(other); 56 return !operator==(other);
57 } 57 }
58 58
59 - void insertAfter(QPDFObjectHandle key, QPDFObjectHandle value); 59 + void insertAfter(QPDFObjectHandle const& key, QPDFObjectHandle const& value);
60 void remove(); 60 void remove();
61 61
62 private: 62 private: