aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDF.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index a870d783..50e08804 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -1976,15 +1976,21 @@ QPDF::isUnresolved(QPDFObjGen const& og)
return !isCached(og) || m->obj_cache[og].object->isUnresolved();
}
-QPDFObjectHandle
-QPDF::makeIndirectObject(std::shared_ptr<QPDFObject> const& obj)
+QPDFObjGen
+QPDF::nextObjGen()
{
int max_objid = toI(getObjectCount());
if (max_objid == std::numeric_limits<int>::max()) {
throw std::range_error(
"max object id is too high to create new objects");
}
- QPDFObjGen next(max_objid + 1, 0);
+ return QPDFObjGen(max_objid + 1, 0);
+}
+
+QPDFObjectHandle
+QPDF::makeIndirectObject(std::shared_ptr<QPDFObject> const& obj)
+{
+ QPDFObjGen next{nextObjGen()};
m->obj_cache[next] = ObjCache(obj, -1, -1);
return newIndirect(next, m->obj_cache[next].object);
}