diff options
| author | 2022-06-17 11:23:12 +0000 | |
|---|---|---|
| committer | 2022-06-17 11:23:12 +0000 | |
| commit | 1574fbe57cb292b7452162ac70183d6c6ee3694e (patch) | |
| tree | b874e3528cc6e48f4a09b60056782a47d0591672 | |
| parent | 95ac43c8bde1ac42337ea1cff5aebe83cf00caae (diff) | |
| parent | a110072a44c58d8d0cdee1d6916539602a66e9eb (diff) | |
Merge "Proactively unparcel bitmaps in MediaMetadata" into tm-dev
| -rw-r--r-- | media/java/android/media/MediaMetadata.java | 9 |
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); } /** |