diff options
author | m-holger <m-holger@kubitscheck.org> | 2023-01-06 14:24:11 +0100 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2023-01-08 19:33:10 +0100 |
commit | 9c216a06d927bf6285dc48f22340d1f752452a6d (patch) | |
tree | 710aefc849aff7c5aedf48ac4f1c7fe910760545 | |
parent | 98dff4631019faa3d72ac53c18e545f5fd9e131a (diff) | |
download | qpdf-9c216a06d927bf6285dc48f22340d1f752452a6d.tar.zst |
Tune QPDFWriter::enqueueObject
-rw-r--r-- | libqpdf/QPDFWriter.cc | 20 |
1 files 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 { |