From 23779a7b47a6686d19a71b8644df0f2fc9e6c3c2 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 13 Oct 2020 18:23:12 -0700 Subject: [PATCH] BLASTBufferQueue JNI: Call getSurface BLASTBufferQueue now uses a Surface subclass, and so we need to call getSurface instead of using the BufferProducer and constructing a Surface in JNI. Bug: 168504871 Test: Existing tests pass Change-Id: Ic11fb96050264310ae967eeadb0ed5de1027c866 --- core/jni/android_graphics_BLASTBufferQueue.cpp | 2 +- core/jni/android_view_Surface.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/jni/android_graphics_BLASTBufferQueue.cpp b/core/jni/android_graphics_BLASTBufferQueue.cpp index b07c29307339a..0fc0451c6d4bb 100644 --- a/core/jni/android_graphics_BLASTBufferQueue.cpp +++ b/core/jni/android_graphics_BLASTBufferQueue.cpp @@ -55,7 +55,7 @@ static void nativeDestroy(JNIEnv* env, jclass clazz, jlong ptr) { static jobject nativeGetSurface(JNIEnv* env, jclass clazz, jlong ptr) { sp queue = reinterpret_cast(ptr); - return android_view_Surface_createFromIGraphicBufferProducer(env, queue->getIGraphicBufferProducer()); + return android_view_Surface_createFromSurface(env, queue->getSurface()); } static void nativeSetNextTransaction(JNIEnv* env, jclass clazz, jlong ptr, jlong transactionPtr) { diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index 6a07cf7bbf40c..5c87f1973bed7 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -313,7 +313,7 @@ static jlong nativeGetFromBlastBufferQueue(JNIEnv* env, jclass clazz, jlong nati return nativeObject; } - sp surface(new Surface(bufferProducer, true)); + sp surface = queue->getSurface(); if (surface != NULL) { surface->incStrong(&sRefBaseOwner); }