diff options
| author | Lee Shombert <shombert@google.com> | 2020-02-22 13:24:02 -0800 |
|---|---|---|
| committer | Lee Shombert <shombert@google.com> | 2020-03-02 17:13:40 +0000 |
| commit | 1f771846c51148b7cb6283e6dc82a216ffaa5353 (patch) | |
| tree | e1c2da654a6dbf7b191c6ce444e0260c2deaf2a7 /core/java/android/app/ApplicationPackageManager.java | |
| parent | 81958ce9b413e8ed4a4542e188b753af5c4b5ff8 (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.java | 7 |
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) { |
