diff options
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r-- | libqpdf/QPDF.cc | 12 |
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); } |