diff options
author | Denis Fokin <Denis.Fokin@jetbrains.com> | 2017-04-03 17:33:02 +0300 |
---|---|---|
committer | Denis Fokin <Denis.Fokin@jetbrains.com> | 2017-04-03 17:33:02 +0300 |
commit | b6582ff55285f82d75db03b851787bc9f1f2be15 (patch) | |
tree | 51b80340d02bd6487584cc19e8b6eb944b561ea8 | |
parent | b7cf2b13ed5c9aaacebfb037dda32159fbf642a0 (diff) | |
download | jdk8u_jdk-b6582ff55285f82d75db03b851787bc9f1f2be15.tar.gz |
Regression: Menus are broken on Mac OSXjb8u112-b8u152_1.8u152_1.12
Revert: 8158325: [macosx] Memory leak in com.apple.laf.ScreenMenu Reviewed-by: azvegint, alexsch
-rw-r--r-- | src/macosx/classes/com/apple/laf/ScreenMenu.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/macosx/classes/com/apple/laf/ScreenMenu.java b/src/macosx/classes/com/apple/laf/ScreenMenu.java index bc8c0cc2f9..8739340848 100644 --- a/src/macosx/classes/com/apple/laf/ScreenMenu.java +++ b/src/macosx/classes/com/apple/laf/ScreenMenu.java @@ -109,7 +109,6 @@ final class ScreenMenu extends Menu final Component[] items = fInvoker.getMenuComponents(); if (needsUpdate(items, childHashArray)) { removeAll(); - fItems.clear(); if (count <= 0) return; childHashArray = new int[count]; @@ -233,7 +232,7 @@ final class ScreenMenu extends Menu synchronized (getTreeLock()) { super.addNotify(); if (fModelPtr == 0) { - fInvoker.getPopupMenu().addContainerListener(this); + fInvoker.addContainerListener(this); fInvoker.addComponentListener(this); fPropertyListener = new ScreenMenuPropertyListener(this); fInvoker.addPropertyChangeListener(fPropertyListener); @@ -267,7 +266,7 @@ final class ScreenMenu extends Menu if (fModelPtr != 0) { removeMenuListeners(fModelPtr); fModelPtr = 0; - fInvoker.getPopupMenu().removeContainerListener(this); + fInvoker.removeContainerListener(this); fInvoker.removeComponentListener(this); fInvoker.removePropertyChangeListener(fPropertyListener); } @@ -288,10 +287,11 @@ final class ScreenMenu extends Menu @Override public void componentRemoved(final ContainerEvent e) { final Component child = e.getChild(); - final MenuItem sm = fItems.remove(child); + final MenuItem sm = fItems.get(child); if (sm == null) return; remove(sm); + fItems.remove(sm); } /** |