From 892937cbbeeef612da9e8b8a4b5ba145fc1e6caa Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 6 Apr 2020 12:14:27 -0400 Subject: Fix errors in --remove-unreferenced-resources=auto --- qpdf/qpdf.cc | 6 ++++-- 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 index b8c5ead1..ce187f15 100644 Binary files a/qpdf/qtest/qpdf/shared-form-images-xobject.pdf and b/qpdf/qtest/qpdf/shared-form-images-xobject.pdf differ -- cgit v1.2.3-70-g09d2