Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a110072a authored by Oliver Woodman's avatar Oliver Woodman
Browse files

Proactively unparcel bitmaps in MediaMetadata

This ensures that the GC accounts for the underlying allocations

Bug: 215820910
Test: Manual
Change-Id: I6b1d3f17abdb513b1ac929267b3d386326fa83c4
parent 016c6a73
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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);
    }

    /**