Commit 5c7af348a01f1bac91fbd3d85f732cd9d46f8e93

Authored by m-holger
Committed by GitHub
2 parents c2131ff0 e5ab05fd

Merge pull request #1520 from m-holger/rr

Refactor QPDF::ResolveRecorder
libqpdf/QPDF_objects.cc
... ... @@ -81,6 +81,24 @@ namespace
81 81 };
82 82 } // namespace
83 83  
  84 +class QPDF::ResolveRecorder final
  85 +{
  86 + public:
  87 + ResolveRecorder(QPDF& qpdf, QPDFObjGen const& og) :
  88 + qpdf(qpdf),
  89 + iter(qpdf.m->resolving.insert(og).first)
  90 + {
  91 + }
  92 + ~ResolveRecorder()
  93 + {
  94 + qpdf.m->resolving.erase(iter);
  95 + }
  96 +
  97 + private:
  98 + QPDF& qpdf;
  99 + std::set<QPDFObjGen>::const_iterator iter;
  100 +};
  101 +
84 102 bool
85 103 QPDF::findStartxref()
86 104 {
... ... @@ -1593,7 +1611,7 @@ QPDF::resolve(QPDFObjGen og)
1593 1611 updateCache(og, QPDFObject::create<QPDF_Null>(), -1, -1);
1594 1612 return m->obj_cache[og].object;
1595 1613 }
1596   - ResolveRecorder rr(this, og);
  1614 + ResolveRecorder rr(*this, og);
1597 1615  
1598 1616 if (m->xref_table.contains(og)) {
1599 1617 QPDFXRefEntry const& entry = m->xref_table[og];
... ...
libqpdf/qpdf/QPDF_private.hh
... ... @@ -563,24 +563,6 @@ class QPDF::JobSetter
563 563 }
564 564 };
565 565  
566   -class QPDF::ResolveRecorder
567   -{
568   - public:
569   - ResolveRecorder(QPDF* qpdf, QPDFObjGen const& og) :
570   - qpdf(qpdf),
571   - iter(qpdf->m->resolving.insert(og).first)
572   - {
573   - }
574   - virtual ~ResolveRecorder()
575   - {
576   - this->qpdf->m->resolving.erase(iter);
577   - }
578   -
579   - private:
580   - QPDF* qpdf;
581   - std::set<QPDFObjGen>::const_iterator iter;
582   -};
583   -
584 566 inline bool
585 567 QPDF::reconstructed_xref() const
586 568 {
... ...