summaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <jberkenbilt@users.noreply.github.com>2023-05-20 21:27:33 +0200
committerGitHub <noreply@github.com>2023-05-20 21:27:33 +0200
commit1c14a9e6c49e43aa95f564a89c4456f14c450546 (patch)
tree215d1c7bc5fcfd8e7bced3ebefeb246e2b2e2fd5 /libqpdf
parent77cc965993f91b6c296d435e22859e3df27624fd (diff)
parent05a49cecf1b1caa12575fa34fa478560ba25e31b (diff)
downloadqpdf-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.cc11
-rw-r--r--libqpdf/QPDFObjectHandle.cc6
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