aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/NNTree.cc6
-rw-r--r--libqpdf/QPDFNameTreeObjectHelper.cc7
-rw-r--r--libqpdf/QPDFNumberTreeObjectHelper.cc7
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)