summaryrefslogtreecommitdiff
path: root/graphics/java
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2023-04-06 17:06:22 -0400
committer John Reck <jreck@google.com> 2023-04-06 17:06:22 -0400
commit9985065af028ea331b6ae5303f41354670bc9f45 (patch)
treece2878dd41324da9664663424a8c7a44438cc7f1 /graphics/java
parent7220f21ddd422e5b4d186f060bfd54445b4e7e77 (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.java1
-rw-r--r--graphics/java/android/graphics/BitmapFactory.java4
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();
}