Merge "Proactively unparcel bitmaps in MediaMetadata" into tm-dev am: 1574fbe57c am: fbb13d7bb9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18918926

Change-Id: Ice7df85603af361df074c862dd463f1fc48d4830
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Oliver Woodman
2022-06-17 19:52:21 +00:00
committed by Automerger Merge Worker

View File

@@ -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);
}
/**