Commit 8715d6a69389646a1dfd224f618ee6af4e487a1b
1 parent
5641832e
Tweak QPDF::replaceObject
Showing
2 changed files
with
6 additions
and
6 deletions
include/qpdf/QPDF.hh
| @@ -1038,7 +1038,7 @@ class QPDF | @@ -1038,7 +1038,7 @@ class QPDF | ||
| 1038 | QPDFObjectHandle makeIndirectFromQPDFObject(std::shared_ptr<QPDFObject> const& obj); | 1038 | QPDFObjectHandle makeIndirectFromQPDFObject(std::shared_ptr<QPDFObject> const& obj); |
| 1039 | bool isCached(QPDFObjGen const& og); | 1039 | bool isCached(QPDFObjGen const& og); |
| 1040 | bool isUnresolved(QPDFObjGen const& og); | 1040 | bool isUnresolved(QPDFObjGen const& og); |
| 1041 | - void removeObject(QPDFObjGen const& og); | 1041 | + void removeObject(QPDFObjGen og); |
| 1042 | void updateCache( | 1042 | void updateCache( |
| 1043 | QPDFObjGen const& og, | 1043 | QPDFObjGen const& og, |
| 1044 | std::shared_ptr<QPDFObject> const& object, | 1044 | std::shared_ptr<QPDFObject> const& object, |
libqpdf/QPDF.cc
| @@ -1987,15 +1987,15 @@ QPDF::replaceObject(QPDFObjGen const& og, QPDFObjectHandle oh) | @@ -1987,15 +1987,15 @@ QPDF::replaceObject(QPDFObjGen const& og, QPDFObjectHandle oh) | ||
| 1987 | } | 1987 | } |
| 1988 | 1988 | ||
| 1989 | void | 1989 | void |
| 1990 | -QPDF::removeObject(QPDFObjGen const& og) | 1990 | +QPDF::removeObject(QPDFObjGen og) |
| 1991 | { | 1991 | { |
| 1992 | - auto null = QPDFObjectHandle::newNull(); | ||
| 1993 | m->xref_table.erase(og); | 1992 | m->xref_table.erase(og); |
| 1994 | - if (isCached(og)) { | 1993 | + if (auto cached = m->obj_cache.find(og); cached != m->obj_cache.end()) { |
| 1995 | // Take care of any object handles that may be floating around. | 1994 | // Take care of any object handles that may be floating around. |
| 1996 | - replaceObject(og, null); | 1995 | + cached->second.object->assign(QPDF_Null::create()); |
| 1996 | + cached->second.object->setObjGen(nullptr, QPDFObjGen()); | ||
| 1997 | + m->obj_cache.erase(cached); | ||
| 1997 | } | 1998 | } |
| 1998 | - m->obj_cache.erase(og); | ||
| 1999 | } | 1999 | } |
| 2000 | 2000 | ||
| 2001 | void | 2001 | void |