From c53d54b13dc6ad369646a09c64d392549effac38 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sat, 6 Aug 2022 19:52:07 +0100 Subject: Add optional parameter allow_nullptr to QPDFObjectHandle::getOwningQPDF Also, inline method and add optional parameter error_msg. --- libqpdf/QPDFObjectHandle.cc | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) (limited to 'libqpdf/QPDFObjectHandle.cc') 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); -- cgit v1.2.3-70-g09d2