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); }