Commit 15269f36d8b7ca17f52b98d9e0f18c6eec102b7b
1 parent
901f1a78
addFormField: update cache rather than invalidating
Showing
1 changed file
with
3 additions
and
1 deletions
libqpdf/QPDFAcroFormDocumentHelper.cc
| @@ -35,7 +35,6 @@ QPDFAcroFormDocumentHelper::hasAcroForm() | @@ -35,7 +35,6 @@ QPDFAcroFormDocumentHelper::hasAcroForm() | ||
| 35 | void | 35 | void |
| 36 | QPDFAcroFormDocumentHelper::addFormField(QPDFFormFieldObjectHelper ff) | 36 | QPDFAcroFormDocumentHelper::addFormField(QPDFFormFieldObjectHelper ff) |
| 37 | { | 37 | { |
| 38 | - invalidateCache(); | ||
| 39 | auto acroform = this->qpdf.getRoot().getKey("/AcroForm"); | 38 | auto acroform = this->qpdf.getRoot().getKey("/AcroForm"); |
| 40 | if (! acroform.isDictionary()) | 39 | if (! acroform.isDictionary()) |
| 41 | { | 40 | { |
| @@ -50,6 +49,9 @@ QPDFAcroFormDocumentHelper::addFormField(QPDFFormFieldObjectHelper ff) | @@ -50,6 +49,9 @@ QPDFAcroFormDocumentHelper::addFormField(QPDFFormFieldObjectHelper ff) | ||
| 50 | acroform.replaceKey("/Fields", fields); | 49 | acroform.replaceKey("/Fields", fields); |
| 51 | } | 50 | } |
| 52 | fields.appendItem(ff.getObjectHandle()); | 51 | fields.appendItem(ff.getObjectHandle()); |
| 52 | + std::set<QPDFObjGen> visited; | ||
| 53 | + traverseField( | ||
| 54 | + ff.getObjectHandle(), QPDFObjectHandle::newNull(), 0, visited); | ||
| 53 | } | 55 | } |
| 54 | 56 | ||
| 55 | std::vector<QPDFFormFieldObjectHelper> | 57 | std::vector<QPDFFormFieldObjectHelper> |