aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFAcroFormDocumentHelper.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-01-05 14:10:27 +0100
committerm-holger <m-holger@kubitscheck.org>2023-05-19 17:58:24 +0200
commitc12a6d06fcd7990ff42fa6285185a4692c209ec5 (patch)
treeedc1261d96e1b0cae5ccb6e90597db28e61ae06b /libqpdf/QPDFAcroFormDocumentHelper.cc
parente7e24fe0706f40b76058bb4b2b46c0307cb6255d (diff)
downloadqpdf-c12a6d06fcd7990ff42fa6285185a4692c209ec5.tar.zst
Use QPDFObjGen::set in QPDFAcroFormDocumentHelper::traverseField
Diffstat (limited to 'libqpdf/QPDFAcroFormDocumentHelper.cc')
-rw-r--r--libqpdf/QPDFAcroFormDocumentHelper.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/libqpdf/QPDFAcroFormDocumentHelper.cc b/libqpdf/QPDFAcroFormDocumentHelper.cc
index 8c2c5e56..c44f7838 100644
--- a/libqpdf/QPDFAcroFormDocumentHelper.cc
+++ b/libqpdf/QPDFAcroFormDocumentHelper.cc
@@ -57,7 +57,7 @@ QPDFAcroFormDocumentHelper::addFormField(QPDFFormFieldObjectHelper ff)
"/Fields", QPDFObjectHandle::newArray());
}
fields.appendItem(ff.getObjectHandle());
- std::set<QPDFObjGen> visited;
+ QPDFObjGen::set visited;
traverseField(
ff.getObjectHandle(), QPDFObjectHandle::newNull(), 0, visited);
}
@@ -167,7 +167,7 @@ QPDFAcroFormDocumentHelper::setFormFieldName(
QPDFFormFieldObjectHelper ff, std::string const& name)
{
ff.setFieldAttribute("/T", name);
- std::set<QPDFObjGen> visited;
+ QPDFObjGen::set visited;
auto ff_oh = ff.getObjectHandle();
traverseField(ff_oh, ff_oh.getKey("/Parent"), 0, visited);
}
@@ -273,7 +273,7 @@ QPDFAcroFormDocumentHelper::analyze()
// Traverse /AcroForm to find annotations and map them
// bidirectionally to fields.
- std::set<QPDFObjGen> visited;
+ QPDFObjGen::set visited;
int nfields = fields.getArrayNItems();
QPDFObjectHandle null(QPDFObjectHandle::newNull());
for (int i = 0; i < nfields; ++i) {
@@ -319,7 +319,7 @@ QPDFAcroFormDocumentHelper::traverseField(
QPDFObjectHandle field,
QPDFObjectHandle parent,
int depth,
- std::set<QPDFObjGen>& visited)
+ QPDFObjGen::set& visited)
{
if (depth > 100) {
// Arbitrarily cut off recursion at a fixed depth to avoid
@@ -341,12 +341,11 @@ QPDFAcroFormDocumentHelper::traverseField(
return;
}
QPDFObjGen og(field.getObjGen());
- if (visited.count(og) != 0) {
+ if (!visited.add(og)) {
QTC::TC("qpdf", "QPDFAcroFormDocumentHelper loop");
field.warnIfPossible("loop detected while traversing /AcroForm");
return;
}
- visited.insert(og);
// A dictionary encountered while traversing the /AcroForm field
// may be a form field, an annotation, or the merger of the two. A