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

Commit 73913e3b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixing HardwareBuffer leak when creating a bitmap" into qt-dev

parents 618940c9 62915b28
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.GraphicBuffer;
import android.graphics.Rect;
import android.hardware.HardwareBuffer;
import android.os.Bundle;
import android.os.Handler;
import android.os.IRemoteCallback;
@@ -925,8 +924,7 @@ public class ActivityOptions {
                // Unpackage the GraphicBuffer from the parceled thumbnail
                final GraphicBuffer buffer = opts.getParcelable(KEY_ANIM_THUMBNAIL);
                if (buffer != null) {
                    mThumbnail = Bitmap.wrapHardwareBuffer(
                            HardwareBuffer.createFromGraphicBuffer(buffer), null);
                    mThumbnail = Bitmap.wrapHardwareBuffer(buffer, null);
                }
                mStartX = opts.getInt(KEY_ANIM_START_X, 0);
                mStartY = opts.getInt(KEY_ANIM_START_Y, 0);
+1 −3
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import android.app.contentsuggestions.SelectionsRequest;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.GraphicBuffer;
import android.hardware.HardwareBuffer;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -67,8 +66,7 @@ public abstract class ContentSuggestionsService extends Service {

            Bitmap wrappedBuffer = null;
            if (contextImage != null) {
                wrappedBuffer = Bitmap.wrapHardwareBuffer(
                        HardwareBuffer.createFromGraphicBuffer(contextImage), null);
                wrappedBuffer = Bitmap.wrapHardwareBuffer(contextImage, null);
            }

            mHandler.sendMessage(
+1 −4
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import android.graphics.PixelFormat;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.Region;
import android.hardware.HardwareBuffer;
import android.hardware.display.DisplayedContentSample;
import android.hardware.display.DisplayedContentSamplingAttributes;
import android.os.Build;
@@ -1917,9 +1916,7 @@ public final class SurfaceControl implements Parcelable {
            Log.w(TAG, "Failed to take screenshot");
            return null;
        }
        return Bitmap.wrapHardwareBuffer(
                HardwareBuffer.createFromGraphicBuffer(buffer.getGraphicBuffer()),
                buffer.getColorSpace());
        return Bitmap.wrapHardwareBuffer(buffer.getGraphicBuffer(), buffer.getColorSpace());
    }

    /**
+12 −0
Original line number Diff line number Diff line
@@ -762,6 +762,18 @@ public final class Bitmap implements Parcelable {
        return nativeWrapHardwareBufferBitmap(hardwareBuffer, colorSpace.getNativeInstance());
    }

    /**
     * Utility method to create a hardware backed bitmap using the graphics buffer.
     * @hide
     */
    @Nullable
    public static Bitmap wrapHardwareBuffer(@NonNull GraphicBuffer graphicBuffer,
            @Nullable ColorSpace colorSpace) {
        try (HardwareBuffer hb = HardwareBuffer.createFromGraphicBuffer(graphicBuffer)) {
            return wrapHardwareBuffer(hb, colorSpace);
        }
    }

    /**
     * Creates a new bitmap, scaled from an existing bitmap, when possible. If the
     * specified width and height are the same as the current width and height of
+1 −4
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.android.systemui.shared.system.WindowManagerWrapper.WINDOWING_
import android.app.ActivityManager.TaskSnapshot;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.hardware.HardwareBuffer;

/**
 * Data for a single thumbnail.
@@ -53,9 +52,7 @@ public class ThumbnailData {
    }

    public ThumbnailData(TaskSnapshot snapshot) {
        thumbnail = Bitmap.wrapHardwareBuffer(
                HardwareBuffer.createFromGraphicBuffer(snapshot.getSnapshot()),
                snapshot.getColorSpace());
        thumbnail = Bitmap.wrapHardwareBuffer(snapshot.getSnapshot(), snapshot.getColorSpace());
        insets = new Rect(snapshot.getContentInsets());
        orientation = snapshot.getOrientation();
        reducedResolution = snapshot.isReducedResolution();
Loading