From c94937c68513c778035ff7537694fb35b7d9f890 Mon Sep 17 00:00:00 2001 From: "Kyeongkab.Nam" Date: Wed, 16 Jan 2019 11:12:23 +0900 Subject: Fix reference leak on TvInputHardwareManager Fix reference leak when hardware is released. Test: 1. Modify to call android.os.Debug.dumpReferenceTables() in TvInputHardwareManager#acquireHardware 2. Build and run 3. Repeat to launch and finish TV player application with logcat output 4. Confirm Global Reference Table information on logcat whether the reference is increased Change-Id: I82593e3d160c78b937ab122ebcc15fa85ad912e8 --- services/core/java/com/android/server/tv/TvInputHardwareManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java index f08e58579975..6ea274d8a814 100755 --- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java +++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java @@ -403,6 +403,10 @@ class TvInputHardwareManager implements TvInputHal.Callback { || checkUidChangedLocked(connection, callingUid, resolvedUserId)) { return; } + ITvInputHardwareCallback callback = connection.getCallbackLocked(); + if (callback != null) { + callback.asBinder().unlinkToDeath(connection, 0); + } connection.resetLocked(null, null, null, null, null); } } -- cgit v1.2.3-59-g8ed1b