Commit 6d62662e2d04ce9134a432d49accb2dcac6b79fa
1 parent
c510c015
Make QPDFObject::releaseResolved public
Now that QPDFObject.hh is out of the public API, we don't really need QPDFObjAccessor. Also, the function didn't have to be virtual anymore.
Showing
3 changed files
with
6 additions
and
25 deletions
libqpdf/QPDF.cc
| ... | ... | @@ -259,7 +259,7 @@ QPDF::~QPDF() |
| 259 | 259 | // made to any of the objects. |
| 260 | 260 | this->m->xref_table.clear(); |
| 261 | 261 | for (auto const& iter: this->m->obj_cache) { |
| 262 | - QPDFObject::ObjAccessor::releaseResolved(iter.second.object.get()); | |
| 262 | + iter.second.object->releaseResolved(); | |
| 263 | 263 | iter.second.object->resetObjGen(); |
| 264 | 264 | } |
| 265 | 265 | } | ... | ... |
libqpdf/QPDFObjectHandle.cc
| ... | ... | @@ -243,12 +243,12 @@ QPDFObjectHandle::releaseResolved() |
| 243 | 243 | // Do not cross over indirect object boundaries to avoid an |
| 244 | 244 | // infinite loop. This method may only be called during final |
| 245 | 245 | // destruction. See comments in QPDF::~QPDF(). |
| 246 | - if (isIndirect()) { | |
| 247 | - if (this->obj.get()) { | |
| 246 | + if (this->obj.get()) { | |
| 247 | + if (isIndirect()) { | |
| 248 | 248 | this->obj = nullptr; |
| 249 | + } else { | |
| 250 | + this->obj->releaseResolved(); | |
| 249 | 251 | } |
| 250 | - } else { | |
| 251 | - QPDFObject::ObjAccessor::releaseResolved(this->obj.get()); | |
| 252 | 252 | } |
| 253 | 253 | } |
| 254 | 254 | ... | ... |
libqpdf/qpdf/QPDFObject.hh
| ... | ... | @@ -138,26 +138,7 @@ class QPDFObject |
| 138 | 138 | return dynamic_cast<T*>(value.get()); |
| 139 | 139 | } |
| 140 | 140 | |
| 141 | - // Accessor to give specific access to non-public methods | |
| 142 | - class ObjAccessor | |
| 143 | - { | |
| 144 | - friend class QPDF; | |
| 145 | - friend class QPDFObjectHandle; | |
| 146 | - | |
| 147 | - private: | |
| 148 | - static void | |
| 149 | - releaseResolved(QPDFObject* o) | |
| 150 | - { | |
| 151 | - if (o) { | |
| 152 | - o->releaseResolved(); | |
| 153 | - } | |
| 154 | - } | |
| 155 | - }; | |
| 156 | - | |
| 157 | - friend class ObjAccessor; | |
| 158 | - | |
| 159 | - protected: | |
| 160 | - virtual void | |
| 141 | + void | |
| 161 | 142 | releaseResolved() |
| 162 | 143 | { |
| 163 | 144 | value->releaseResolved(); | ... | ... |