diff options
author | Andrey Loskutov | 2019-12-16 10:14:14 +0000 |
---|---|---|
committer | Andrey Loskutov | 2019-12-16 19:18:34 +0000 |
commit | 466d3c597673095877146de0471f3dc0f6297b2e (patch) | |
tree | 0b18182e05dc6c66ac61a5a977f784827530700d /bundles/org.eclipse.swt/Eclipse SWT Accessibility | |
parent | 9d6e19785b417802f4cf1e21fe6cc92f739d6773 (diff) | |
download | eclipse.platform.swt-466d3c597673095877146de0471f3dc0f6297b2e.tar.gz eclipse.platform.swt-466d3c597673095877146de0471f3dc0f6297b2e.tar.xz eclipse.platform.swt-466d3c597673095877146de0471f3dc0f6297b2e.zip |
Bug 558355 - [gtk] Possible leak in Accessible.release()
We iterate over children list and dispose them, but children remove
itself on disposal from the list, so the next widget in the list will be
not disposed.
Change-Id: I265002015551f95fa23ff589987f3314761b4669
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Accessibility')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/Accessible.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/Accessible.java b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/Accessible.java index 078404b5d1..4188173386 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/Accessible.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/Accessible.java @@ -553,8 +553,9 @@ public class Accessible { void release () { if (children != null) { - for (int i = 0; i < children.size(); i++) { - Accessible child = children.get(i); + List<Accessible> temp = new ArrayList<>(children); + for (int i = 0; i < temp.size(); i++) { + Accessible child = temp.get(i); child.dispose(); } } |