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

Commit 0a5c8c15 authored by Cuiping.x.Shu's avatar Cuiping.x.Shu Committed by Xiong Li
Browse files

Check recycled when createBitmap

This is to avoid framework crash when application used
the recycled bitmap memory in createBitmap.

Bug:123656975

Change-Id: I98f93ce48c7bc91913d0b31bca1dc0a10eb319d7
parent 037a0879
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -814,7 +814,7 @@ public final class Bitmap implements Parcelable {
     * @return A bitmap that represents the specified subset of source
     * @throws IllegalArgumentException if the x, y, width, height values are
     *         outside of the dimensions of the source bitmap, or width is <= 0,
     *         or height is <= 0
     *         or height is <= 0, or if the source bitmap has already been recycled
     */
    public static Bitmap createBitmap(@NonNull Bitmap source, int x, int y, int width, int height,
            @Nullable Matrix m, boolean filter) {
@@ -827,6 +827,9 @@ public final class Bitmap implements Parcelable {
        if (y + height > source.getHeight()) {
            throw new IllegalArgumentException("y + height must be <= bitmap.height()");
        }
        if (source.isRecycled()) {
            throw new IllegalArgumentException("cannot use a recycled source in createBitmap");
        }

        // check if we can just return our argument unchanged
        if (!source.isMutable() && x == 0 && y == 0 && width == source.getWidth() &&