From 7cdc616a01d220c4f617718e8e7498a40470c6aa Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Mon, 27 Mar 2023 11:18:14 -0700 Subject: [PATCH] Changing global variable for local variable to prevent memory leaks The array mTmpObjArray is not properly clean but ther is no need for the array to be global since every time is used is provided so a use of a local variable will make sure is never leaked. Fix: 269163620 Test: the flake related to memory leak on testWorkspace should dissapear Change-Id: I29fb3dd6419f621f2ccce9db2fc5ed86358f7516 --- src/com/android/launcher3/views/FloatingIconView.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java index c3633db11f..4d0e2aff2d 100644 --- a/src/com/android/launcher3/views/FloatingIconView.java +++ b/src/com/android/launcher3/views/FloatingIconView.java @@ -80,7 +80,6 @@ public class FloatingIconView extends FrameLayout implements public static final float SHAPE_PROGRESS_DURATION = 0.10f; private static final RectF sTmpRectF = new RectF(); - private static final Object[] sTmpObjArray = new Object[1]; private Runnable mEndRunnable; private CancellationSignal mLoadIconSignal; @@ -289,12 +288,13 @@ public class FloatingIconView extends FrameLayout implements } else { int width = (int) pos.width(); int height = (int) pos.height(); + Object[] tmpObjArray = new Object[1]; if (supportsAdaptiveIcons) { boolean shouldThemeIcon = btvIcon instanceof FastBitmapDrawable && ((FastBitmapDrawable) btvIcon).isThemed(); - drawable = getFullDrawable(l, info, width, height, shouldThemeIcon, sTmpObjArray); + drawable = getFullDrawable(l, info, width, height, shouldThemeIcon, tmpObjArray); if (drawable instanceof AdaptiveIconDrawable) { - badge = getBadge(l, info, sTmpObjArray[0]); + badge = getBadge(l, info, tmpObjArray[0]); } else { // The drawable we get back is not an adaptive icon, so we need to use the // BubbleTextView icon that is already legacy treated. @@ -306,7 +306,7 @@ public class FloatingIconView extends FrameLayout implements drawable = btvIcon; } else { drawable = getFullDrawable(l, info, width, height, true /* shouldThemeIcon */, - sTmpObjArray); + tmpObjArray); } } } @@ -679,7 +679,6 @@ public class FloatingIconView extends FrameLayout implements mOriginalIcon = null; mOnTargetChangeRunnable = null; mBadge = null; - sTmpObjArray[0] = null; sRecycledFetchIconId = sFetchIconId; mIconLoadResult = null; mClipIconView.recycle();