aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFObjectHandle.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-08-06 20:52:07 +0200
committerm-holger <m-holger@kubitscheck.org>2022-08-28 23:15:59 +0200
commitc53d54b13dc6ad369646a09c64d392549effac38 (patch)
treec26a8d6477b5a175f483affed2782a969d39142d /libqpdf/QPDFObjectHandle.cc
parentcef6425bcac678157f58e9eafabb7e63c5831d18 (diff)
downloadqpdf-c53d54b13dc6ad369646a09c64d392549effac38.tar.zst
Add optional parameter allow_nullptr to QPDFObjectHandle::getOwningQPDF
Also, inline method and add optional parameter error_msg.
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r--libqpdf/QPDFObjectHandle.cc27
1 files changed, 9 insertions, 18 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index cf5460d7..8a2d59e3 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -1207,14 +1207,6 @@ QPDFObjectHandle::getUniqueResourceName(
" QPDFObjectHandle::getUniqueResourceName");
}
-// Indirect object accessors
-QPDF*
-QPDFObjectHandle::getOwningQPDF()
-{
- // Will be null for direct objects
- return this->qpdf;
-}
-
// Dictionary mutators
void
@@ -1634,16 +1626,15 @@ QPDFObjectHandle::coalesceContentStreams()
// files may have pages that are invalid in other ways.
return;
}
- QPDF* qpdf = getOwningQPDF();
- if (qpdf == nullptr) {
- // Should not be possible for a page object to not have an
- // owning PDF unless it was manually constructed in some
- // incorrect way. However, it can happen in a PDF file whose
- // page structure is direct, which is against spec but still
- // possible to hand construct, as in fuzz issue 27393.
- throw std::runtime_error("coalesceContentStreams called on object"
- " with no associated PDF file");
- }
+ // Should not be possible for a page object to not have an
+ // owning PDF unless it was manually constructed in some
+ // incorrect way. However, it can happen in a PDF file whose
+ // page structure is direct, which is against spec but still
+ // possible to hand construct, as in fuzz issue 27393.
+ QPDF* qpdf = getOwningQPDF(
+ false,
+ "coalesceContentStreams called on object with no associated PDF file");
+
QPDFObjectHandle new_contents = newStream(qpdf);
this->replaceKey("/Contents", new_contents);