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

Commit fe07b9a2 authored by Justin Ho's avatar Justin Ho Committed by Android (Google) Code Review
Browse files

Merge "Tentative fix for mysteriously recycled bitmap"

parents f6a7e1f7 4e525a6e
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -519,14 +519,15 @@ public class BitmapFactory {
        final boolean isNinePatch = np != null && NinePatch.isNinePatchChunk(np);
        if (opts.inScaled || isNinePatch) {
            float scale = targetDensity / (float) density;
            // TODO: This is very inefficient and should be done in native by Skia
            if (scale != 1.0f) {
                final Bitmap oldBitmap = bm;
                bm = Bitmap.createScaledBitmap(oldBitmap, (int) (bm.getWidth() * scale + 0.5f),
                        (int) (bm.getHeight() * scale + 0.5f), true);
            oldBitmap.recycle();
                if (bm != oldBitmap) oldBitmap.recycle();
            }

            if (isNinePatch) {
                np = nativeScaleNinePatch(np, scale, outPadding);
                if (scale != 1.0f) np = nativeScaleNinePatch(np, scale, outPadding);
                bm.setNinePatchChunk(np);
            }
            bm.setDensity(targetDensity);