diff --git a/libqpdf/NNTree.cc b/libqpdf/NNTree.cc index a781af6..16b0b6e 100644 --- a/libqpdf/NNTree.cc +++ b/libqpdf/NNTree.cc @@ -390,7 +390,7 @@ NNTreeIterator::lastPathElement() } void -NNTreeIterator::insertAfter(QPDFObjectHandle key, QPDFObjectHandle value) +NNTreeIterator::insertAfter(QPDFObjectHandle const& key, QPDFObjectHandle const& value) { if (!valid()) { QTC::TC("qpdf", "NNTree insertAfter inserts first"); @@ -400,10 +400,11 @@ NNTreeIterator::insertAfter(QPDFObjectHandle key, QPDFObjectHandle value) } auto items = node.getKey(impl.details.itemsKey()); - if (!items.isArray()) { - impl.error(node, "node contains no items array"); - } - if (items.getArrayNItems() < item_number + 2) { + + if (std::cmp_less(items.size(), item_number + 2)) { + if (!items.isArray()) { + impl.error(node, "node contains no items array"); + } impl.error(node, "insert: items array is too short"); } items.insertItem(item_number + 2, key); diff --git a/libqpdf/qpdf/NNTree.hh b/libqpdf/qpdf/NNTree.hh index af50bbf..96d954e 100644 --- a/libqpdf/qpdf/NNTree.hh +++ b/libqpdf/qpdf/NNTree.hh @@ -56,7 +56,7 @@ class NNTreeIterator return !operator==(other); } - void insertAfter(QPDFObjectHandle key, QPDFObjectHandle value); + void insertAfter(QPDFObjectHandle const& key, QPDFObjectHandle const& value); void remove(); private: