From 9c216a06d927bf6285dc48f22340d1f752452a6d Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 6 Jan 2023 13:24:11 +0000 Subject: Tune QPDFWriter::enqueueObject --- libqpdf/QPDFWriter.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 6b388aa3..e1225c34 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -1257,17 +1257,17 @@ QPDFWriter::enqueueObject(QPDFObjectHandle object) // indicates that an object stream is inside itself. QTC::TC("qpdf", "QPDFWriter ignore self-referential object stream"); } - } else if (object.isArray()) { - if (!this->m->linearized) { - int n = object.getArrayNItems(); - for (int i = 0; i < n; ++i) { - enqueueObject(object.getArrayItem(i)); + return; + } else if (!this->m->linearized) { + if (object.isArray()) { + for (auto& item: object.getArrayAsVector()) { + enqueueObject(item); } - } - } else if (object.isDictionary()) { - if (!this->m->linearized) { - for (auto const& key: object.getKeys()) { - enqueueObject(object.getKey(key)); + } else if (object.isDictionary()) { + for (auto& item: object.getDictAsMap()) { + if (!item.second.isNull()) { + enqueueObject(item.second); + } } } } else { -- cgit v1.2.3-54-g00ecf