From 4ff837f099c4594fbb95463ebfd6199051d0fa30 Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 9 Feb 2022 13:54:33 +0000 Subject: [PATCH] Fix tests for Form XObjects Remove test for type == /XObject in QPDFObjectHandle::isFormXObject as type value is optional (as per spec 8.10.2). Replace code to test for /Form in QPDFJob::shouldRemoveUnreferencedResources with a call to isFormXObject. --- libqpdf/QPDFJob.cc | 8 +------- libqpdf/QPDFObjectHandle.cc | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index e95d08ad..c23b950b 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -2743,13 +2743,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) for (auto const& k: xobject.getKeys()) { QPDFObjectHandle xobj = xobject.getKey(k); - if (xobj.isStream() && - xobj.getDict().getKey("/Type").isName() && - ("/XObject" == - xobj.getDict().getKey("/Type").getName()) && - xobj.getDict().getKey("/Subtype").isName() && - ("/Form" == - xobj.getDict().getKey("/Subtype").getName())) + if (xobj.isFormXObject()) { queue.push_back(xobj); } diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index c2917157..745de6c9 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -3406,7 +3406,7 @@ QPDFObjectHandle::isPagesObject() bool QPDFObjectHandle::isFormXObject() { - return isStreamOfType("/XObject", "/Form"); + return isStreamOfType("", "/Form"); } bool