PDFBOX-4071: refactor / simplify / comment long method
git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1866152 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
index 1a37532..e4cfef2 100644
--- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
+++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
@@ -878,30 +878,18 @@
{
for (PDField field : fields)
{
+ COSArray array;
if (field.getParent() == null)
{
- COSArray cosFields = (COSArray) dictionary.getDictionaryObject(COSName.FIELDS);
- for (int i = 0; i < cosFields.size(); i++)
- {
- COSDictionary element = (COSDictionary) cosFields.getObject(i);
- if (field.getCOSObject().equals(element))
- {
- cosFields.remove(i);
- }
- }
+ // if the field has no parent, assume it is at root level list, remove it from there
+ array = (COSArray) dictionary.getDictionaryObject(COSName.FIELDS);
}
else
{
- COSArray kids = (COSArray) field.getParent().getCOSObject().getDictionaryObject(COSName.KIDS);
- for (int i = 0; i < kids.size(); i++)
- {
- COSDictionary element = (COSDictionary) kids.getObject(i);
- if (field.getCOSObject().equals(element))
- {
- kids.remove(i);
- }
- }
+ // if the field has a parent, then remove from the list there
+ array = (COSArray) field.getParent().getCOSObject().getDictionaryObject(COSName.KIDS);
}
+ array.removeObject(field.getCOSObject());
}
}
}