Commit d395a90904f6f30fdf76dae0eb5219c1c832813c

Authored by m-holger
1 parent 5b3b135f

Use QPDFObjGen::set in QPDFAcroFormDocumentHelper::getFormFieldsForPage

libqpdf/QPDFAcroFormDocumentHelper.cc
@@ -217,18 +217,12 @@ std::vector<QPDFFormFieldObjectHelper> @@ -217,18 +217,12 @@ std::vector<QPDFFormFieldObjectHelper>
217 QPDFAcroFormDocumentHelper::getFormFieldsForPage(QPDFPageObjectHelper ph) 217 QPDFAcroFormDocumentHelper::getFormFieldsForPage(QPDFPageObjectHelper ph)
218 { 218 {
219 analyze(); 219 analyze();
220 - std::set<QPDFObjGen> added; 220 + QPDFObjGen::set todo;
221 std::vector<QPDFFormFieldObjectHelper> result; 221 std::vector<QPDFFormFieldObjectHelper> result;
222 - auto widget_annotations = getWidgetAnnotationsForPage(ph);  
223 - for (auto annot: widget_annotations) {  
224 - auto field = getFieldForAnnotation(annot);  
225 - field = field.getTopLevelField();  
226 - auto og = field.getObjectHandle().getObjGen();  
227 - if (!added.count(og)) {  
228 - added.insert(og);  
229 - if (field.getObjectHandle().isDictionary()) {  
230 - result.push_back(field);  
231 - } 222 + for (auto& annot: getWidgetAnnotationsForPage(ph)) {
  223 + auto field = getFieldForAnnotation(annot).getTopLevelField();
  224 + if (todo.add(field) && field.getObjectHandle().isDictionary()) {
  225 + result.push_back(field);
232 } 226 }
233 } 227 }
234 return result; 228 return result;