summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Oliver Woodman <olly@google.com> 2022-06-17 19:29:56 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-06-17 19:29:56 +0000
commitfbb13d7bb9bf21517c25cb0ebeec11fefa6bbf88 (patch)
tree108cd32b912bb909645ba4e2e2fd6573f821408e
parent0a6bc03b73e5aea125219147d5f5b594aeae6be8 (diff)
parent1574fbe57cb292b7452162ac70183d6c6ee3694e (diff)
Merge "Proactively unparcel bitmaps in MediaMetadata" into tm-dev am: 1574fbe57c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18918926 Change-Id: I6dce5d62fd0acbf23176abc13a03ce3d9660a4f9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--media/java/android/media/MediaMetadata.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/media/java/android/media/MediaMetadata.java b/media/java/android/media/MediaMetadata.java
index 9976fa11d177..db5e52a44c8a 100644
--- a/media/java/android/media/MediaMetadata.java
+++ b/media/java/android/media/MediaMetadata.java
@@ -429,6 +429,15 @@ public final class MediaMetadata implements Parcelable {
private MediaMetadata(Parcel in) {
mBundle = in.readBundle();
mBitmapDimensionLimit = Math.max(in.readInt(), 1);
+
+ // Proactively read bitmaps from known bitmap keys, to ensure that they're unparceled and
+ // added to mBundle's internal map. This ensures that the GC accounts for the underlying
+ // allocations, which it does not do if the bitmaps remain parceled (see b/215820910).
+ // TODO(b/223225532): Remove this workaround once the underlying allocations are properly
+ // tracked in NativeAllocationsRegistry.
+ getBitmap(METADATA_KEY_ART);
+ getBitmap(METADATA_KEY_ALBUM_ART);
+ getBitmap(METADATA_KEY_DISPLAY_ICON);
}
/**