From a08adb2437f641087e01436293736be235fe1fda Mon Sep 17 00:00:00 2001 From: RoboErik Date: Fri, 21 Nov 2014 18:28:18 -0800 Subject: [PATCH] Fix binder equality check Forgot to call .asBinder() before checking binders for equality. This fixes a memory leak caused by the system holding on to binders. bug:18049316 Change-Id: I43a9f4163b28cf1a77e59c3e7bade32bd2ef1c1a --- .../java/com/android/server/media/MediaSessionService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index 98a3970402464..053c988823299 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -427,7 +427,7 @@ public class MediaSessionService extends SystemService implements Monitor { private int findIndexOfSessionsListenerLocked(IActiveSessionsListener listener) { for (int i = mSessionsListeners.size() - 1; i >= 0; i--) { - if (mSessionsListeners.get(i).mListener == listener) { + if (mSessionsListeners.get(i).mListener.asBinder() == listener.asBinder()) { return i; } } @@ -764,6 +764,7 @@ public class MediaSessionService extends SystemService implements Monitor { pw.println(); synchronized (mLock) { + pw.println(mSessionsListeners.size() + " sessions listeners."); int count = mAllSessions.size(); pw.println(count + " Sessions:"); for (int i = 0; i < count; i++) {