diff --git a/libqpdf/QPDF_objects.cc b/libqpdf/QPDF_objects.cc index 168c1c8..aa65e0d 100644 --- a/libqpdf/QPDF_objects.cc +++ b/libqpdf/QPDF_objects.cc @@ -81,6 +81,24 @@ namespace }; } // namespace +class QPDF::ResolveRecorder final +{ + public: + ResolveRecorder(QPDF& qpdf, QPDFObjGen const& og) : + qpdf(qpdf), + iter(qpdf.m->resolving.insert(og).first) + { + } + ~ResolveRecorder() + { + qpdf.m->resolving.erase(iter); + } + + private: + QPDF& qpdf; + std::set::const_iterator iter; +}; + bool QPDF::findStartxref() { @@ -1593,7 +1611,7 @@ QPDF::resolve(QPDFObjGen og) updateCache(og, QPDFObject::create(), -1, -1); return m->obj_cache[og].object; } - ResolveRecorder rr(this, og); + ResolveRecorder rr(*this, og); if (m->xref_table.contains(og)) { QPDFXRefEntry const& entry = m->xref_table[og]; diff --git a/libqpdf/qpdf/QPDF_private.hh b/libqpdf/qpdf/QPDF_private.hh index 85898bd..55bffce 100644 --- a/libqpdf/qpdf/QPDF_private.hh +++ b/libqpdf/qpdf/QPDF_private.hh @@ -563,24 +563,6 @@ class QPDF::JobSetter } }; -class QPDF::ResolveRecorder -{ - public: - ResolveRecorder(QPDF* qpdf, QPDFObjGen const& og) : - qpdf(qpdf), - iter(qpdf->m->resolving.insert(og).first) - { - } - virtual ~ResolveRecorder() - { - this->qpdf->m->resolving.erase(iter); - } - - private: - QPDF* qpdf; - std::set::const_iterator iter; -}; - inline bool QPDF::reconstructed_xref() const {