diff options
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/NNTree.cc | 6 | ||||
-rw-r--r-- | libqpdf/QPDFNameTreeObjectHelper.cc | 7 | ||||
-rw-r--r-- | libqpdf/QPDFNumberTreeObjectHelper.cc | 7 |
3 files changed, 17 insertions, 3 deletions
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<NNTreeIterator> 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<NNTreeIterator> const& i) : impl(i) |