From 892937cbbeeef612da9e8b8a4b5ba145fc1e6caa Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 6 Apr 2020 12:14:27 -0400 Subject: [PATCH] Fix errors in --remove-unreferenced-resources=auto --- qpdf/qpdf.cc | 6 ++++-- .../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 b8c5ead1c9f99c7762d917720370c3d4e4d68a37..ce187f156e1e0ace066a93f77726820a25bc7ba8 100644 GIT binary patch delta 533 zcmX@;v)gZjJQIh3f|0R;fkM#a0Oo?ttxTQ5oNg5c3Kk%t&0J!qc$tihCvRg>;Waei zQUC%l6+791Rae5u1f+<|&W@|Nq$o8pmrGS4HMgLoa`HqOO=*x^eo_{fIag|43W&i~ zQIwj-1+>j{@?GWJdP{Q!0}xQiQ{VzK3=9p7Ofkd^%`w#(fgFsc*TmcmL(CM5I&*WN z&w!vF*JcjE#8 DEm?2x delta 401 zcmdn(chF~pJk#VH=CsYznL33x>xv!Y<*X=5P2)09FfyLJUM08Q+)}{+1QhZVxWEhp zLjwbI3^7AfOm#*ErWoo>Of4|POtGjlH!}dMt4Frj!T>|Fv56&y#m1&47-FWzre^3C zo0=G5sx!4PMphRA^0TR#u_3Y`Sj^lI;zA?`nj4#H!;8vvotg{m^@3(iqUxT SRkau{Lvtf8RaIAiH!c7^v{Kgq