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
This commit is contained in:
RoboErik
2014-11-21 18:28:18 -08:00
parent 85f463c5b5
commit a08adb2437

View File

@@ -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++) {