From b30b1683e119c509dc32b5a4d00a113546deac95 Mon Sep 17 00:00:00 2001 From: Lucas Silva Date: Wed, 1 Jun 2022 15:01:11 -0400 Subject: [PATCH] Use try-with-resource statement for dream metadata to ensure proper cleanup. This ensures the memory is properly cleaned up if an exception is thrown while building the DreamMetadata object. Bug: 234343900 Test: locally on device Change-Id: I29b2bed30c216d5e353fa0a8b0da74579b33cecb --- .../android/service/dreams/DreamService.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 5217b28942f8d..2d461c6cf92e7 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -1130,18 +1130,16 @@ public class DreamService extends Service implements Window.Callback { final PackageManager pm = context.getPackageManager(); - final TypedArray rawMetadata = readMetadata(pm, serviceInfo); - if (rawMetadata == null) return null; - - final DreamMetadata metadata = new DreamMetadata( - convertToComponentName(rawMetadata.getString( - com.android.internal.R.styleable.Dream_settingsActivity), serviceInfo), - rawMetadata.getDrawable( - com.android.internal.R.styleable.Dream_previewImage), - rawMetadata.getBoolean(R.styleable.Dream_showClockAndComplications, - DEFAULT_SHOW_COMPLICATIONS)); - rawMetadata.recycle(); - return metadata; + try (TypedArray rawMetadata = readMetadata(pm, serviceInfo)) { + if (rawMetadata == null) return null; + return new DreamMetadata( + convertToComponentName(rawMetadata.getString( + com.android.internal.R.styleable.Dream_settingsActivity), serviceInfo), + rawMetadata.getDrawable( + com.android.internal.R.styleable.Dream_previewImage), + rawMetadata.getBoolean(R.styleable.Dream_showClockAndComplications, + DEFAULT_SHOW_COMPLICATIONS)); + } } /**