summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationPackageManager.java
diff options
context:
space:
mode:
authorLee Shombert <shombert@google.com>2020-02-22 13:24:02 -0800
committerLee Shombert <shombert@google.com>2020-03-02 17:13:40 +0000
commit1f771846c51148b7cb6283e6dc82a216ffaa5353 (patch)
treee1c2da654a6dbf7b191c6ce444e0260c2deaf2a7 /core/java/android/app/ApplicationPackageManager.java
parent81958ce9b413e8ed4a4542e188b753af5c4b5ff8 (diff)
Fix a leak in HasSystemFeatureCache.
Bug: 150037560 Make HasSystemFeatureQuery static so that it does not retain a handle to ApplicationPackageManager. Test: Boot with an instrumented image to verify that caching still works as expected. Took a heap profile to verify that there were no leaks in the cache. Change-Id: I2cd39a6dfab9cc1bf04bb7f55638a572213f04ce
Diffstat (limited to 'core/java/android/app/ApplicationPackageManager.java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 969ea707d434..87d33a980438 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -99,6 +99,7 @@ import android.util.Log;
import android.view.Display;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.Immutable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.UserIcons;
@@ -612,7 +613,11 @@ public class ApplicationPackageManager extends PackageManager {
return hasSystemFeature(name, 0);
}
- private class HasSystemFeatureQuery {
+ /**
+ * Identifies a single hasSystemFeature query.
+ */
+ @Immutable
+ private static final class HasSystemFeatureQuery {
public final String name;
public final int version;
public HasSystemFeatureQuery(String n, int v) {