From 21ef9647e8bd9997ed63f891b13bc3cc0f566b52 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 25 Apr 2013 11:34:23 -0700 Subject: [PATCH] Avoid leaking Surface native object. Bug: 8721827 Change-Id: I8d6192b8eb47911fcf4964de399c7dba94ed9286 --- .../java/com/android/server/power/ElectronBeam.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/services/java/com/android/server/power/ElectronBeam.java b/services/java/com/android/server/power/ElectronBeam.java index 4a74149cdcf4a..379e704ab1d9e 100644 --- a/services/java/com/android/server/power/ElectronBeam.java +++ b/services/java/com/android/server/power/ElectronBeam.java @@ -389,10 +389,14 @@ final class ElectronBeam { mTexNamesGenerated = true; } - SurfaceTexture st = new SurfaceTexture(mTexNames[0]); - SurfaceControl.screenshot(SurfaceControl.getBuiltInDisplay( - SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN), - new Surface(st)); + final SurfaceTexture st = new SurfaceTexture(mTexNames[0]); + final Surface s = new Surface(st); + try { + SurfaceControl.screenshot(SurfaceControl.getBuiltInDisplay( + SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN), s); + } finally { + s.release(); + } st.updateTexImage(); st.getTransformMatrix(mTexMatrix);