From 8715d6a69389646a1dfd224f618ee6af4e487a1b Mon Sep 17 00:00:00 2001 From: m-holger Date: Mon, 8 Jan 2024 11:49:21 +0000 Subject: [PATCH] Tweak QPDF::replaceObject --- include/qpdf/QPDF.hh | 2 +- libqpdf/QPDF.cc | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index 9ab3ae3..a836c3c 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -1038,7 +1038,7 @@ class QPDF QPDFObjectHandle makeIndirectFromQPDFObject(std::shared_ptr const& obj); bool isCached(QPDFObjGen const& og); bool isUnresolved(QPDFObjGen const& og); - void removeObject(QPDFObjGen const& og); + void removeObject(QPDFObjGen og); void updateCache( QPDFObjGen const& og, std::shared_ptr const& object, diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 5d09f90..41ecd54 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -1987,15 +1987,15 @@ QPDF::replaceObject(QPDFObjGen const& og, QPDFObjectHandle oh) } void -QPDF::removeObject(QPDFObjGen const& og) +QPDF::removeObject(QPDFObjGen og) { - auto null = QPDFObjectHandle::newNull(); m->xref_table.erase(og); - if (isCached(og)) { + if (auto cached = m->obj_cache.find(og); cached != m->obj_cache.end()) { // Take care of any object handles that may be floating around. - replaceObject(og, null); + cached->second.object->assign(QPDF_Null::create()); + cached->second.object->setObjGen(nullptr, QPDFObjGen()); + m->obj_cache.erase(cached); } - m->obj_cache.erase(og); } void -- libgit2 0.21.4