From ad73bbcd90bfac665f43f83131a4d7f913505350 Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 25 Aug 2023 13:28:48 +0100 Subject: Change QPDF::reserveObjects to reserve indirect nulls to reserve foreign objects --- libqpdf/QPDF.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'libqpdf/QPDF.cc') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 739ad7ce..5249b8cb 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -1860,6 +1860,12 @@ QPDF::newReserved() return makeIndirectFromQPDFObject(QPDF_Reserved::create()); } +QPDFObjectHandle +QPDF::newIndirectNull() +{ + return makeIndirectFromQPDFObject(QPDF_Null::create()); +} + QPDFObjectHandle QPDF::newStream() { @@ -2015,8 +2021,7 @@ QPDF::copyForeignObject(QPDFObjectHandle foreign) reserveObjects(foreign, obj_copier, true); if (!obj_copier.visiting.empty()) { - throw std::logic_error("obj_copier.visiting is not empty" - " after reserving objects"); + throw std::logic_error("obj_copier.visiting is not empty after reserving objects"); } // Copy any new objects and replace the reservations. @@ -2071,7 +2076,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() : newReserved(); + obj_copier.object_map[foreign_og] = + foreign.isStream() ? newStream() : newIndirectNull(); } } -- cgit v1.2.3-70-g09d2