Commit 5641832e54e347c2c33e9304d96cca450eb305ed
1 parent
07f6c635
Tweak QPDF::read_xref
Showing
1 changed file
with
5 additions
and
10 deletions
libqpdf/QPDF.cc
| @@ -708,16 +708,11 @@ QPDF::read_xref(qpdf_offset_t xref_offset) | @@ -708,16 +708,11 @@ QPDF::read_xref(qpdf_offset_t xref_offset) | ||
| 708 | m->deleted_objects.clear(); | 708 | m->deleted_objects.clear(); |
| 709 | 709 | ||
| 710 | // Make sure we keep only the highest generation for any object. | 710 | // Make sure we keep only the highest generation for any object. |
| 711 | - QPDFObjGen::set to_delete; | ||
| 712 | - QPDFObjGen last_og; | ||
| 713 | - for (auto const& og: m->xref_table) { | ||
| 714 | - if (og.first.getObj() == last_og.getObj()) { | ||
| 715 | - to_delete.emplace(last_og); | ||
| 716 | - } | ||
| 717 | - last_og = og.first; | ||
| 718 | - } | ||
| 719 | - for (auto const& og: to_delete) { | ||
| 720 | - removeObject(og); | 711 | + QPDFObjGen last_og{-1, 0}; |
| 712 | + for (auto const& [og, _xref]: m->xref_table) { | ||
| 713 | + if (og.getObj() == last_og.getObj()) | ||
| 714 | + removeObject(last_og); | ||
| 715 | + last_og = og; | ||
| 721 | } | 716 | } |
| 722 | } | 717 | } |
| 723 | 718 |