diff options
-rw-r--r-- | include/qpdf/QPDF.hh | 2 | ||||
-rw-r--r-- | libqpdf/QPDF.cc | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index 9ab3ae3f..a836c3c9 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -1038,7 +1038,7 @@ class QPDF QPDFObjectHandle makeIndirectFromQPDFObject(std::shared_ptr<QPDFObject> 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<QPDFObject> const& object, diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 5d09f900..41ecd54a 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 |