From 1b54846254020aa92e381f7d711b38beda58f1c1 Mon Sep 17 00:00:00 2001 From: vadimt Date: Mon, 29 Mar 2021 14:47:06 -0700 Subject: [PATCH] Fixing a leak in WallpaperColorInfo Nulling temp listeners after use Test: presubmit Bug: 181356264 Change-Id: I6cace47f1424e2fe59a283bb0e16de523875b6cf --- .../com/android/launcher3/uioverrides/WallpaperColorInfo.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/WallpaperColorInfo.java b/quickstep/src/com/android/launcher3/uioverrides/WallpaperColorInfo.java index 36c0e342c1..1417995057 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/WallpaperColorInfo.java +++ b/quickstep/src/com/android/launcher3/uioverrides/WallpaperColorInfo.java @@ -102,9 +102,11 @@ public class WallpaperColorInfo implements OnColorsChangedListener { private void notifyChange() { // Create a new array to avoid concurrent modification when the activity destroys itself. mTempListeners = mListeners.toArray(mTempListeners); - for (OnChangeListener listener : mTempListeners) { + for (int i = mTempListeners.length - 1; i >= 0; --i) { + final OnChangeListener listener = mTempListeners[i]; if (listener != null) { listener.onExtractedColorsChanged(this); + mTempListeners[i] = null; } } }