From 0a3c533186e3b4957fbf318e9507fe52d3f71cbd Mon Sep 17 00:00:00 2001 From: m-holger Date: Mon, 26 Sep 2022 18:43:28 +0100 Subject: Add private method QPDF::nextObjGen --- include/qpdf/QPDF.hh | 1 + libqpdf/QPDF.cc | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index 54630a62..f3160bf9 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -1185,6 +1185,7 @@ class QPDF void stopOnError(std::string const& message); QPDFObjectHandle reserveObjectIfNotExists(QPDFObjGen const& og); QPDFObjectHandle reserveStream(QPDFObjGen const& og); + QPDFObjGen nextObjGen(); QPDFObjectHandle newIndirect(QPDFObjGen const&, std::shared_ptr const&); QPDFObjectHandle makeIndirectObject(std::shared_ptr const& obj); 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 const& obj) +QPDFObjGen +QPDF::nextObjGen() { int max_objid = toI(getObjectCount()); if (max_objid == std::numeric_limits::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 const& obj) +{ + QPDFObjGen next{nextObjGen()}; m->obj_cache[next] = ObjCache(obj, -1, -1); return newIndirect(next, m->obj_cache[next].object); } -- cgit v1.2.3-54-g00ecf