diff options
author | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2023-05-20 21:27:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-20 21:27:33 +0200 |
commit | 1c14a9e6c49e43aa95f564a89c4456f14c450546 (patch) | |
tree | 215d1c7bc5fcfd8e7bced3ebefeb246e2b2e2fd5 /libqpdf | |
parent | 77cc965993f91b6c296d435e22859e3df27624fd (diff) | |
parent | 05a49cecf1b1caa12575fa34fa478560ba25e31b (diff) | |
download | qpdf-1c14a9e6c49e43aa95f564a89c4456f14c450546.tar.zst |
Merge pull request #959 from m-holger/reserved
Add new method QPDF::newReserved()
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDF.cc | 11 | ||||
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 39a4a630..33e9c18d 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -1985,6 +1985,12 @@ QPDF::makeIndirectObject(QPDFObjectHandle oh) } QPDFObjectHandle +QPDF::newReserved() +{ + return makeIndirectFromQPDFObject(QPDF_Reserved::create()); +} + +QPDFObjectHandle QPDF::newStream() { return makeIndirectFromQPDFObject(QPDF_Stream::create( @@ -2207,9 +2213,8 @@ QPDF::reserveObjects(QPDFObjectHandle foreign, ObjCopier& obj_copier, bool top) QTC::TC("qpdf", "QPDF copy indirect"); if (obj_copier.object_map.count(foreign_og) == 0) { obj_copier.to_copy.push_back(foreign); - obj_copier.object_map[foreign_og] = foreign.isStream() - ? newStream() - : QPDFObjectHandle::newReserved(this); + obj_copier.object_map[foreign_og] = + foreign.isStream() ? newStream() : newReserved(); } } diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 5ef261af..70926267 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2128,7 +2128,11 @@ QPDFObjectHandle::newStream(QPDF* qpdf, std::string const& data) QPDFObjectHandle QPDFObjectHandle::newReserved(QPDF* qpdf) { - return qpdf->makeIndirectObject(QPDFObjectHandle(QPDF_Reserved::create())); + if (qpdf == nullptr) { + throw std::runtime_error( + "attempt to create reserved object in null qpdf object"); + } + return qpdf->newReserved(); } void |