summaryrefslogtreecommitdiff
path: root/graphics/java/android
diff options
context:
space:
mode:
authorHuihong Luo <huisinro@google.com>2021-06-14 12:01:40 -0700
committerHuihong Luo <huisinro@google.com>2021-06-16 09:47:04 -0700
commit1d88151a380c2a8f102c76b8413d17989215ccf8 (patch)
tree4ce87940806d456e8ad0c5d835c06bd80b29cb7a /graphics/java/android
parent41e7f367edbf9d1819b8e593f71d2fbc1bdc143a (diff)
Fix potential ASurfaceTransactionCallback leaks
Change the rerferene to java object from global reference to weak reference. Bug: 188555236 Test: check number of ViewRootImpl objects from Systrace Change-Id: I52347b9efb211691826635d046259bc3c54b194f
Diffstat (limited to 'graphics/java/android')
-rw-r--r--graphics/java/android/graphics/HardwareRenderer.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index 954d062b55e9..6aa74cb415f9 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -753,8 +753,12 @@ public class HardwareRenderer {
nCancelLayerUpdate(mNativeProxy, layer.getDeferredLayerUpdater());
}
+ private ASurfaceTransactionCallback mASurfaceTransactionCallback;
+
/** @hide */
public void setASurfaceTransactionCallback(ASurfaceTransactionCallback callback) {
+ // ensure callback is kept alive on the java side since weak ref is used in native code
+ mASurfaceTransactionCallback = callback;
nSetASurfaceTransactionCallback(mNativeProxy, callback);
}