diff options
| author | 2023-04-06 17:06:22 -0400 | |
|---|---|---|
| committer | 2023-04-06 17:06:22 -0400 | |
| commit | 9985065af028ea331b6ae5303f41354670bc9f45 (patch) | |
| tree | ce2878dd41324da9664663424a8c7a44438cc7f1 /graphics/java | |
| parent | 7220f21ddd422e5b4d186f060bfd54445b4e7e77 (diff) | |
Null out gainmaps on inBitmap re-use
Bug: 277230526
Test: android.graphics.cts.GainmapTest#testDecodeGainmapBitmapFactoryReuse
Change-Id: I437f2599f023d83bdd70f1bf123357318c79b4e3
Diffstat (limited to 'graphics/java')
| -rw-r--r-- | graphics/java/android/graphics/Bitmap.java | 1 | ||||
| -rw-r--r-- | graphics/java/android/graphics/BitmapFactory.java | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java index 8dd23b70ae61..25b074d20b81 100644 --- a/graphics/java/android/graphics/Bitmap.java +++ b/graphics/java/android/graphics/Bitmap.java @@ -1921,6 +1921,7 @@ public final class Bitmap implements Parcelable { */ public void setGainmap(@Nullable Gainmap gainmap) { checkRecycled("Bitmap is recycled"); + mGainmap = null; nativeSetGainmap(mNativePtr, gainmap == null ? 0 : gainmap.mNativePtr); } diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java index 701e20c499da..1da8e189d768 100644 --- a/graphics/java/android/graphics/BitmapFactory.java +++ b/graphics/java/android/graphics/BitmapFactory.java @@ -482,7 +482,9 @@ public class BitmapFactory { if (opts == null || opts.inBitmap == null) { return 0; } - + // Clear out the gainmap since we don't attempt to reuse it and don't want to + // accidentally keep it on the re-used bitmap + opts.inBitmap.setGainmap(null); return opts.inBitmap.getNativeInstance(); } |