aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qpdf/qpdf.cc6
-rw-r--r--qpdf/qtest/qpdf/shared-form-images-xobject.pdfbin9793 -> 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
--- a/qpdf/qtest/qpdf/shared-form-images-xobject.pdf
+++ b/qpdf/qtest/qpdf/shared-form-images-xobject.pdf
Binary files differ