commit | c8f6ecc265656cdf68d2010a4e04666017c3b907 | [log] [tgz] |
---|---|---|
author | Chris Banes <chrisbanes@google.com> | Tue Jun 30 11:16:37 2015 +0100 |
committer | Chris Banes <chrisbanes@google.com> | Tue Jun 30 11:17:57 2015 +0100 |
tree | 6c6a902ec4c705c7bf4e4f5b441e229eecbd20ab | |
parent | f62f4c94a36f5c2f7ad3c70316dc585ea3fd721a [diff] |
Fix memory leak in setActionProvider() - framework edition Caused by ActionMenuItem's SubUiVisibilityListener not being nulled when it is replaced via setActionProvider(). BUG: 22189734 Change-Id: Id4deaa05cd5554ca7bdf969a592e4812e39dcb75
diff --git a/core/java/android/view/ActionProvider.java b/core/java/android/view/ActionProvider.java index c3aafde..752240f 100644 --- a/core/java/android/view/ActionProvider.java +++ b/core/java/android/view/ActionProvider.java
@@ -237,6 +237,14 @@ } /** + * @hide + */ + public void reset() { + mVisibilityListener = null; + mSubUiVisibilityListener = null; + } + + /** * @hide Internal use only */ public interface SubUiVisibilityListener {
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 3b1f20d..08d4e86 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -593,7 +593,7 @@ public MenuItem setActionProvider(ActionProvider actionProvider) { if (mActionProvider != null) { - mActionProvider.setVisibilityListener(null); + mActionProvider.reset(); } mActionView = null; mActionProvider = actionProvider;