summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2019-05-02 23:01:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-05-02 23:01:42 +0000
commitd2ff5562a4b48f7fdd1028b1789e31244e1007a8 (patch)
tree9ebd66d91e20f1b91edc3f54f2fa4460518ecd0b /core/java
parent76d9f441337aa432951a28f2770178896e8893c8 (diff)
parent67b090243d842b9ac3be37e6051e4f68ab6b29f6 (diff)
Merge "Preemptively clear buffer reference if snapshot is unused" into qt-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/TaskStackListener.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/app/TaskStackListener.java b/core/java/android/app/TaskStackListener.java
index 97b9176d4a86..a4a97c4cac1d 100644
--- a/core/java/android/app/TaskStackListener.java
+++ b/core/java/android/app/TaskStackListener.java
@@ -19,6 +19,7 @@ package android.app;
import android.annotation.UnsupportedAppUsage;
import android.app.ActivityManager.TaskSnapshot;
import android.content.ComponentName;
+import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
@@ -155,6 +156,11 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub {
@Override
@UnsupportedAppUsage
public void onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) throws RemoteException {
+ if (Binder.getCallingPid() != android.os.Process.myPid()
+ && snapshot != null && snapshot.getSnapshot() != null) {
+ // Preemptively clear any reference to the buffer
+ snapshot.getSnapshot().destroy();
+ }
}
@Override