From fbbeb3e54a73e0fa7dbd5c2c1093705e69ae27da Mon Sep 17 00:00:00 2001 From: Donghyun Cho Date: Fri, 15 Apr 2016 09:12:03 +0900 Subject: [PATCH] CEC: Remove listener records only if they are currently used HdmiControlService manages listeners in listener record instances, and remove them when binders become disconnected. However, if the listener and its record are replaced due to new listener, the record for the new listener should not be set as null by previous binder's disconnection signal. Bug: 28069465 Change-Id: I2984d8f93d6443048cf5d3f2988b3c6cf362f012 (cherry picked from commit f5c2a1f58dc95b9800ffb6ebf405c11acc6626b2) --- .../java/com/android/server/hdmi/HdmiControlService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index fed7e4b7a8f95..e07d72f0e7d1f 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -1189,7 +1189,9 @@ public final class HdmiControlService extends SystemService { @Override public void binderDied() { synchronized (mLock) { - mRecordListenerRecord = null; + if (mRecordListenerRecord == this) { + mRecordListenerRecord = null; + } } } } @@ -1813,7 +1815,9 @@ public final class HdmiControlService extends SystemService { @Override public void binderDied() { synchronized (mLock) { - mInputChangeListenerRecord = null; + if (mInputChangeListenerRecord == this) { + mInputChangeListenerRecord = null; + } } } }