aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-02-18 16:20:30 +0100
committerJay Berkenbilt <ejb@ql.org>2021-02-18 16:25:07 +0100
commit0765872295e581ea6ae5a07e12916a552a1543ee (patch)
tree53e72ec4f1197e047aa41c87a212af8b8a7bdf30
parent0a52e60ececc3ed7430dacaf4e433f04d91efbce (diff)
downloadqpdf-0765872295e581ea6ae5a07e12916a552a1543ee.tar.zst
Form field for non-widget just returns null
-rw-r--r--include/qpdf/QPDFAcroFormDocumentHelper.hh4
-rw-r--r--libqpdf/QPDFAcroFormDocumentHelper.cc6
2 files changed, 4 insertions, 6 deletions
diff --git a/include/qpdf/QPDFAcroFormDocumentHelper.hh b/include/qpdf/QPDFAcroFormDocumentHelper.hh
index 8f4f2039..2c22a5da 100644
--- a/include/qpdf/QPDFAcroFormDocumentHelper.hh
+++ b/include/qpdf/QPDFAcroFormDocumentHelper.hh
@@ -134,8 +134,8 @@ class QPDFAcroFormDocumentHelper: public QPDFDocumentHelper
// field dictionary, the underlying object will be the same, but
// this is not always the case. Note that if you call this method
// with an annotation that is not a widget annotation, there will
- // not be an associated field, and this method will raise an
- // exception.
+ // not be an associated field, and this method will return a
+ // helper associated with a null object (isNull() == true).
QPDF_DLL
QPDFFormFieldObjectHelper
getFieldForAnnotation(QPDFAnnotationObjectHelper);
diff --git a/libqpdf/QPDFAcroFormDocumentHelper.cc b/libqpdf/QPDFAcroFormDocumentHelper.cc
index ea12f656..0fcc81f6 100644
--- a/libqpdf/QPDFAcroFormDocumentHelper.cc
+++ b/libqpdf/QPDFAcroFormDocumentHelper.cc
@@ -70,16 +70,14 @@ QPDFFormFieldObjectHelper
QPDFAcroFormDocumentHelper::getFieldForAnnotation(QPDFAnnotationObjectHelper h)
{
QPDFObjectHandle oh = h.getObjectHandle();
+ QPDFFormFieldObjectHelper result(QPDFObjectHandle::newNull());
if (! (oh.isDictionary() &&
oh.getKey("/Subtype").isName() &&
(oh.getKey("/Subtype").getName() == "/Widget")))
{
- throw std::logic_error(
- "QPDFAnnotationObjectHelper::getFieldForAnnotation called for"
- " non-/Widget annotation");
+ return result;
}
analyze();
- QPDFFormFieldObjectHelper result(QPDFObjectHandle::newNull());
QPDFObjGen og(oh.getObjGen());
if (this->m->annotation_to_field.count(og))
{