Commit 3cacb27a90cf332e7e978e925bb615c17f567ee3
1 parent
bddebdb0
Performance fix on preserveObjectStreams
Showing
2 changed files
with
12 additions
and
2 deletions
ChangeLog
libqpdf/QPDFWriter.cc
| ... | ... | @@ -2361,6 +2361,12 @@ QPDFWriter::initializeSpecialStreams() |
| 2361 | 2361 | void |
| 2362 | 2362 | QPDFWriter::preserveObjectStreams() |
| 2363 | 2363 | { |
| 2364 | + std::map<int, int> omap; | |
| 2365 | + QPDF::Writer::getObjectStreamData(this->m->pdf, omap); | |
| 2366 | + if (omap.empty()) | |
| 2367 | + { | |
| 2368 | + return; | |
| 2369 | + } | |
| 2364 | 2370 | // Our object_to_object_stream map has to map ObjGen -> ObjGen |
| 2365 | 2371 | // since we may be generating object streams out of old objects |
| 2366 | 2372 | // that have generation numbers greater than zero. However in an |
| ... | ... | @@ -2380,8 +2386,6 @@ QPDFWriter::preserveObjectStreams() |
| 2380 | 2386 | } |
| 2381 | 2387 | QTC::TC("qpdf", "QPDFWriter preserve object streams", |
| 2382 | 2388 | this->m->preserve_unreferenced_objects ? 0 : 1); |
| 2383 | - std::map<int, int> omap; | |
| 2384 | - QPDF::Writer::getObjectStreamData(this->m->pdf, omap); | |
| 2385 | 2389 | for (auto iter: omap) |
| 2386 | 2390 | { |
| 2387 | 2391 | QPDFObjGen og(iter.first, 0); | ... | ... |