aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/qpdf/QPDF.hh2
-rw-r--r--libqpdf/QPDF.cc10
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