aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-05-15 19:10:10 +0200
committerJay Berkenbilt <ejb@ql.org>2022-05-20 13:54:09 +0200
commit9064542b5f23bde3e7d6826b5b5e8b0a6f356434 (patch)
treeaa7e28b3512f754b14afc3ef3f4454db13c42c22 /libqpdf/QPDF.cc
parent7fa5d1773b599df51df21658dff53f5b66fdbba8 (diff)
downloadqpdf-9064542b5f23bde3e7d6826b5b5e8b0a6f356434.tar.zst
Add private methods for reserving specific objects
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r--libqpdf/QPDF.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index 2658dd26..1807a838 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -2156,6 +2156,17 @@ QPDF::makeIndirectObject(QPDFObjectHandle oh)
}
QPDFObjectHandle
+QPDF::reserveObjectIfNotExists(int objid, int gen)
+{
+ QPDFObjGen og(objid, gen);
+ if ((!this->m->obj_cache.count(og)) && (!this->m->xref_table.count(og))) {
+ resolve(objid, gen);
+ replaceObject(objid, gen, QPDFObjectHandle::Factory::makeReserved());
+ }
+ return getObjectByID(objid, gen);
+}
+
+QPDFObjectHandle
QPDF::getObjectByObjGen(QPDFObjGen const& og)
{
return getObjectByID(og.getObj(), og.getGen());