From 032ab0d8923c0a15841ac957aba498b1d95f7dbd Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 23 Mar 2021 16:38:43 -0700 Subject: [PATCH] Only unlink death recipient if binder was previously added Bug: 183538974 Test: Presubmit Change-Id: I255531e409cf666a01306ab486294be49a8f9483 --- .../wm/shell/transition/RemoteTransitionHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java index 9667f4b6a8c54..8876e5f861391 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java @@ -84,12 +84,16 @@ public class RemoteTransitionHandler implements Transitions.TransitionHandler { } void removeFiltered(IRemoteTransition remote) { - remote.asBinder().unlinkToDeath(mTransitionDeathRecipient, 0 /* flags */); + boolean removed = false; for (int i = mFilters.size() - 1; i >= 0; --i) { if (mFilters.get(i).second == remote) { mFilters.remove(i); + removed = true; } } + if (removed) { + remote.asBinder().unlinkToDeath(mTransitionDeathRecipient, 0 /* flags */); + } } @Override