summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-04-10 21:18:37 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-10 21:18:37 +0000
commitf0bc25e44dc701e2e2ae1045a7c2ed173e7b3018 (patch)
treef6c76aedf9652227e2719dec00c0be1c724c99ef
parentc31d0bea7c0b1d2806c2368995f81c03f4f7bc52 (diff)
parent69c66253ea5e714765da37ac0727719626b72711 (diff)
Merge "Native crash -> ISE" into udc-dev
-rw-r--r--graphics/java/android/graphics/Bitmap.java3
-rw-r--r--graphics/java/android/graphics/BitmapShader.java3
2 files changed, 5 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 25b074d20b81..2307d6080f9f 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -401,8 +401,9 @@ public final class Bitmap implements Parcelable {
/**
* This is called by methods that want to throw an exception if the bitmap
* has already been recycled.
+ * @hide
*/
- private void checkRecycled(String errorMessage) {
+ void checkRecycled(String errorMessage) {
if (mRecycled) {
throw new IllegalStateException(errorMessage);
}
diff --git a/graphics/java/android/graphics/BitmapShader.java b/graphics/java/android/graphics/BitmapShader.java
index 2f6dd468511b..5c065775eea2 100644
--- a/graphics/java/android/graphics/BitmapShader.java
+++ b/graphics/java/android/graphics/BitmapShader.java
@@ -120,6 +120,7 @@ public class BitmapShader extends Shader {
if (bitmap == null) {
throw new IllegalArgumentException("Bitmap must be non-null");
}
+ bitmap.checkRecycled("Cannot create BitmapShader for recycled bitmap");
mBitmap = bitmap;
mTileX = tileX;
mTileY = tileY;
@@ -188,6 +189,8 @@ public class BitmapShader extends Shader {
/** @hide */
@Override
protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) {
+ mBitmap.checkRecycled("BitmapShader's bitmap has been recycled");
+
boolean enableLinearFilter = mFilterMode == FILTER_MODE_LINEAR;
if (mFilterMode == FILTER_MODE_DEFAULT) {
mFilterFromPaint = filterFromPaint;