diff options
| author | 2022-05-17 22:51:10 -0700 | |
|---|---|---|
| committer | 2022-05-18 16:44:30 -0700 | |
| commit | 197fa0acf226d77e7fcf417d0a519ecd5274e69b (patch) | |
| tree | cbc7de29ef25a4baf5ffe67ddac0a564f3535be4 | |
| parent | ac94a2dacd0d57751a75b2f5a634c27a6775a94e (diff) | |
Fix SearchUiService memory leak by removing DeathRecipient from
CallbackWrapper
Bug: 232548271
Test: used go/ahat to see memory stay steady
Change-Id: I182b6dc3ce4d86ab46c5543a1ff68f320fecaa98
| -rw-r--r-- | core/java/android/service/search/SearchUiService.java | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/core/java/android/service/search/SearchUiService.java b/core/java/android/service/search/SearchUiService.java index c04dd9cd20bc..02d41ef93262 100644 --- a/core/java/android/service/search/SearchUiService.java +++ b/core/java/android/service/search/SearchUiService.java @@ -20,7 +20,6 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainMessa import android.annotation.CallSuper; import android.annotation.MainThread; import android.annotation.NonNull; -import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.Service; import android.app.search.ISearchCallback; @@ -88,7 +87,7 @@ public abstract class SearchUiService extends Service { mHandler.sendMessage( obtainMessage(SearchUiService::onQuery, SearchUiService.this, sessionId, input, - new CallbackWrapper(callback, null))); + new CallbackWrapper(callback))); } @Override @@ -173,21 +172,12 @@ public abstract class SearchUiService extends Service { @MainThread public abstract void onDestroy(@NonNull SearchSessionId sessionId); - private static final class CallbackWrapper implements Consumer<List<SearchTarget>>, - IBinder.DeathRecipient { + private static final class CallbackWrapper implements Consumer<List<SearchTarget>> { private ISearchCallback mCallback; - private final Consumer<CallbackWrapper> mOnBinderDied; - CallbackWrapper(ISearchCallback callback, - @Nullable Consumer<CallbackWrapper> onBinderDied) { + CallbackWrapper(ISearchCallback callback) { mCallback = callback; - mOnBinderDied = onBinderDied; - try { - mCallback.asBinder().linkToDeath(this, 0); - } catch (RemoteException e) { - Slog.e(TAG, "Failed to link to death: " + e); - } } @Override @@ -203,14 +193,5 @@ public abstract class SearchUiService extends Service { Slog.e(TAG, "Error sending result:" + e); } } - - @Override - public void binderDied() { - mCallback.asBinder().unlinkToDeath(this, 0); - mCallback = null; - if (mOnBinderDied != null) { - mOnBinderDied.accept(this); - } - } } } |