diff options
author | Huihong Luo <huisinro@google.com> | 2021-06-14 12:01:40 -0700 |
---|---|---|
committer | Huihong Luo <huisinro@google.com> | 2021-06-16 09:47:04 -0700 |
commit | 1d88151a380c2a8f102c76b8413d17989215ccf8 (patch) | |
tree | 4ce87940806d456e8ad0c5d835c06bd80b29cb7a /graphics/java | |
parent | 41e7f367edbf9d1819b8e593f71d2fbc1bdc143a (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')
-rw-r--r-- | graphics/java/android/graphics/HardwareRenderer.java | 4 |
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); } |