Commit 8363657cf34be7ac34b86ee32ec052cc4ed7e5e1

Authored by m-holger
Committed by Jay Berkenbilt
1 parent 9c216a06

Change QPDFWriter::object_queue to std::vector

include/qpdf/QPDFWriter.hh
... ... @@ -751,7 +751,8 @@ class QPDFWriter
751 751 std::string cur_data_key;
752 752 std::list<std::shared_ptr<Pipeline>> to_delete;
753 753 Pl_Count* pipeline;
754   - std::list<QPDFObjectHandle> object_queue;
  754 + std::vector<QPDFObjectHandle> object_queue;
  755 + size_t object_queue_front{0};
755 756 std::map<QPDFObjGen, int> obj_renumber;
756 757 std::map<int, QPDFXRefEntry> xref;
757 758 std::map<int, qpdf_offset_t> lengths;
... ...
libqpdf/QPDFWriter.cc
... ... @@ -3363,9 +3363,9 @@ QPDFWriter::writeStandard()
3363 3363 }
3364 3364  
3365 3365 // Now start walking queue, outputting each object.
3366   - while (this->m->object_queue.size()) {
3367   - QPDFObjectHandle cur_object = this->m->object_queue.front();
3368   - this->m->object_queue.pop_front();
  3366 + while (m->object_queue_front < m->object_queue.size()) {
  3367 + QPDFObjectHandle cur_object = m->object_queue.at(m->object_queue_front);
  3368 + ++m->object_queue_front;
3369 3369 writeObject(cur_object);
3370 3370 }
3371 3371  
... ...