diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-09-26 19:43:28 +0200 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2022-11-19 20:10:42 +0100 |
commit | 0a3c533186e3b4957fbf318e9507fe52d3f71cbd (patch) | |
tree | 50d49a87277c10da9dc3d457f75e3a06ef142692 | |
parent | b3d71e1f58aa767dfa8eac3e723ecc164131f306 (diff) | |
download | qpdf-0a3c533186e3b4957fbf318e9507fe52d3f71cbd.tar.zst |
Add private method QPDF::nextObjGen
-rw-r--r-- | include/qpdf/QPDF.hh | 1 | ||||
-rw-r--r-- | 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<QPDFObject> const&); QPDFObjectHandle makeIndirectObject(std::shared_ptr<QPDFObject> 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<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); } |