aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-01-24 09:55:18 +0100
committerJay Berkenbilt <ejb@ql.org>2021-01-25 21:39:10 +0100
commit16a9bb3f6f63497946d0efbf403df92d0ce30745 (patch)
treeb2cec476622efcf477a72911e22f920564e35d8d /libqpdf
parentb5614f611d3057359dfd7ba63418c62787af5511 (diff)
downloadqpdf-16a9bb3f6f63497946d0efbf403df92d0ce30745.tar.zst
name/number trees: newEmpty, increment/decrement end()
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)