diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | libqpdf/QPDFWriter.cc | 8 |
2 files changed, 12 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2021-05-09 Jay Berkenbilt <ejb@ql.org> + + * Improve performance of preservation of object streams by + avoiding unnecessary traversal of objects when there are no object + streams. + 2021-05-08 Jay Berkenbilt <ejb@ql.org> * 10.3.2: release diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 83349b48..23beee32 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -2361,6 +2361,12 @@ QPDFWriter::initializeSpecialStreams() void QPDFWriter::preserveObjectStreams() { + std::map<int, int> omap; + QPDF::Writer::getObjectStreamData(this->m->pdf, omap); + if (omap.empty()) + { + return; + } // Our object_to_object_stream map has to map ObjGen -> ObjGen // since we may be generating object streams out of old objects // that have generation numbers greater than zero. However in an @@ -2380,8 +2386,6 @@ QPDFWriter::preserveObjectStreams() } QTC::TC("qpdf", "QPDFWriter preserve object streams", this->m->preserve_unreferenced_objects ? 0 : 1); - std::map<int, int> omap; - QPDF::Writer::getObjectStreamData(this->m->pdf, omap); for (auto iter: omap) { QPDFObjGen og(iter.first, 0); |