summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-02-09 14:54:33 +0100
committerJay Berkenbilt <jberkenbilt@users.noreply.github.com>2022-02-11 01:47:37 +0100
commit4ff837f099c4594fbb95463ebfd6199051d0fa30 (patch)
tree296c2128eaa97ebcd059c483a461cc16c5534f04
parent235c89e037d6d9925cf201cadfa9e0df1771212c (diff)
downloadqpdf-4ff837f099c4594fbb95463ebfd6199051d0fa30.tar.zst
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.
-rw-r--r--libqpdf/QPDFJob.cc8
-rw-r--r--libqpdf/QPDFObjectHandle.cc2
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