summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hyunyoung Song <hyunyoungs@google.com> 2022-05-17 22:51:10 -0700
committer Hyunyoung Song <hyunyoungs@google.com> 2022-05-18 16:44:30 -0700
commit197fa0acf226d77e7fcf417d0a519ecd5274e69b (patch)
treecbc7de29ef25a4baf5ffe67ddac0a564f3535be4
parentac94a2dacd0d57751a75b2f5a634c27a6775a94e (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.java25
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);
- }
- }
}
}