diff options
-rw-r--r-- | qpdf/qpdf.cc | 6 | ||||
-rw-r--r-- | qpdf/qtest/qpdf/shared-form-images-xobject.pdf | bin | 9793 -> 10043 bytes |
2 files changed, 4 insertions, 2 deletions
diff --git a/qpdf/qpdf.cc b/qpdf/qpdf.cc index 00374387..fd6060e0 100644 --- a/qpdf/qpdf.cc +++ b/qpdf/qpdf.cc @@ -4846,13 +4846,13 @@ static bool should_remove_unreferenced_resources(QPDF& pdf, Options& o) while (! queue.empty()) { QPDFObjectHandle node = *queue.begin(); + queue.pop_front(); QPDFObjGen og = node.getObjGen(); if (nodes_seen.count(og)) { continue; } nodes_seen.insert(og); - queue.pop_front(); QPDFObjectHandle dict = node.isStream() ? node.getDict() : node; QPDFObjectHandle kids = dict.getKey("/Kids"); if (kids.isArray()) @@ -4898,7 +4898,9 @@ static bool should_remove_unreferenced_resources(QPDF& pdf, Options& o) } resources_seen.insert(resources_og); } - QPDFObjectHandle xobject = resources.getKey("/XObject"); + QPDFObjectHandle xobject = (resources.isDictionary() ? + resources.getKey("/XObject") : + QPDFObjectHandle::newNull()); if (xobject.isIndirect()) { QPDFObjGen xobject_og = xobject.getObjGen(); diff --git a/qpdf/qtest/qpdf/shared-form-images-xobject.pdf b/qpdf/qtest/qpdf/shared-form-images-xobject.pdf Binary files differindex b8c5ead1..ce187f15 100644 --- a/qpdf/qtest/qpdf/shared-form-images-xobject.pdf +++ b/qpdf/qtest/qpdf/shared-form-images-xobject.pdf |