From 16a9bb3f6f63497946d0efbf403df92d0ce30745 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 24 Jan 2021 03:55:18 -0500 Subject: name/number trees: newEmpty, increment/decrement end() --- libqpdf/NNTree.cc | 6 +++--- libqpdf/QPDFNameTreeObjectHelper.cc | 7 +++++++ libqpdf/QPDFNumberTreeObjectHelper.cc | 7 +++++++ 3 files changed, 17 insertions(+), 3 deletions(-) (limited to 'libqpdf') diff --git a/libqpdf/NNTree.cc b/libqpdf/NNTree.cc index 3d1388b4..05398602 100644 --- a/libqpdf/NNTree.cc +++ b/libqpdf/NNTree.cc @@ -103,9 +103,9 @@ NNTreeIterator::increment(bool backward) { if (this->item_number < 0) { - throw std::logic_error( - "attempt made to increment or decrement an invalid" - " name/number tree iterator"); + QTC::TC("qpdf", "NNTree increment end()"); + deepen(impl.oh, ! backward, true); + return; } bool found_valid_key = false; while (valid() && (! found_valid_key)) diff --git a/libqpdf/QPDFNameTreeObjectHelper.cc b/libqpdf/QPDFNameTreeObjectHelper.cc index 52201eff..ffcf95a3 100644 --- a/libqpdf/QPDFNameTreeObjectHelper.cc +++ b/libqpdf/QPDFNameTreeObjectHelper.cc @@ -56,6 +56,13 @@ QPDFNameTreeObjectHelper::~QPDFNameTreeObjectHelper() { } +QPDFNameTreeObjectHelper +QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) +{ + return QPDFNameTreeObjectHelper( + QPDFObjectHandle::parse("<< /Names [] >>"), qpdf, auto_repair); +} + QPDFNameTreeObjectHelper::iterator::iterator( std::shared_ptr const& i) : impl(i) diff --git a/libqpdf/QPDFNumberTreeObjectHelper.cc b/libqpdf/QPDFNumberTreeObjectHelper.cc index f21d1e51..053fa421 100644 --- a/libqpdf/QPDFNumberTreeObjectHelper.cc +++ b/libqpdf/QPDFNumberTreeObjectHelper.cc @@ -52,6 +52,13 @@ QPDFNumberTreeObjectHelper::QPDFNumberTreeObjectHelper(QPDFObjectHandle oh) : { } +QPDFNumberTreeObjectHelper +QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) +{ + return QPDFNumberTreeObjectHelper( + QPDFObjectHandle::parse("<< /Nums [] >>"), qpdf, auto_repair); +} + QPDFNumberTreeObjectHelper::iterator::iterator( std::shared_ptr const& i) : impl(i) -- cgit v1.2.3-54-g00ecf