From 73e8b9e52411785189a35640e3ccb18574e38263 Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Sat, 15 Jan 2011 13:05:24 -0800 Subject: [PATCH] Compare GraphicBuffers using handles. This change fixes a bug in SurfaceTextureClient where GraphicBuffers were being compared using pointer comparison rather than handles. Change-Id: Ib8989af94be32d4efd86e020a732f5143088a863 --- libs/gui/SurfaceTextureClient.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp index 24cee24d4..0ed8be528 100644 --- a/libs/gui/SurfaceTextureClient.cpp +++ b/libs/gui/SurfaceTextureClient.cpp @@ -111,7 +111,7 @@ int SurfaceTextureClient::cancelBuffer(android_native_buffer_t* buffer) { LOGV("SurfaceTextureClient::cancelBuffer"); Mutex::Autolock lock(mMutex); for (int i = 0; i < NUM_BUFFER_SLOTS; i++) { - if (mSlots[i].get() == buffer) { + if (mSlots[i]->handle == buffer->handle) { mSurfaceTexture->cancelBuffer(i); return OK; } @@ -129,7 +129,7 @@ int SurfaceTextureClient::queueBuffer(android_native_buffer_t* buffer) { LOGV("SurfaceTextureClient::queueBuffer"); Mutex::Autolock lock(mMutex); for (int i = 0; i < NUM_BUFFER_SLOTS; i++) { - if (mSlots[i].get() == GraphicBuffer::getSelf(buffer)) { + if (mSlots[i]->handle == buffer->handle) { return mSurfaceTexture->queueBuffer(i); } }