aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFWriter.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-01-06 14:24:11 +0100
committerJay Berkenbilt <jberkenbilt@users.noreply.github.com>2023-01-08 19:33:10 +0100
commit9c216a06d927bf6285dc48f22340d1f752452a6d (patch)
tree710aefc849aff7c5aedf48ac4f1c7fe910760545 /libqpdf/QPDFWriter.cc
parent98dff4631019faa3d72ac53c18e545f5fd9e131a (diff)
downloadqpdf-9c216a06d927bf6285dc48f22340d1f752452a6d.tar.zst
Tune QPDFWriter::enqueueObject
Diffstat (limited to 'libqpdf/QPDFWriter.cc')
-rw-r--r--libqpdf/QPDFWriter.cc20
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 {