summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2011-11-17 17:10:47 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-11-17 17:10:47 -0800
commit2ba13186b268de3527af6da1933a4b65877548d9 (patch)
treeea6586b746df5e52e63581f799b1b3055fd28496 /libs
parentc8fd6e3057a98a992b96c2bce3fa2a981c6e45c0 (diff)
parente36d05483fa525be1c98dbf98ac3d6244e6cdb47 (diff)
downloadframeworks_base-2ba13186b268de3527af6da1933a4b65877548d9.zip
frameworks_base-2ba13186b268de3527af6da1933a4b65877548d9.tar.gz
frameworks_base-2ba13186b268de3527af6da1933a4b65877548d9.tar.bz2
Merge "SurfaceTexture: fix a bug with buffer reallocation" into ics-mr1
Diffstat (limited to 'libs')
-rw-r--r--libs/gui/SurfaceTexture.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp
index 3c0d475..0561909 100644
--- a/libs/gui/SurfaceTexture.cpp
+++ b/libs/gui/SurfaceTexture.cpp
@@ -437,6 +437,11 @@ status_t SurfaceTexture::dequeueBuffer(int *outBuf, uint32_t w, uint32_t h,
mSlots[buf].mEglImage = EGL_NO_IMAGE_KHR;
mSlots[buf].mEglDisplay = EGL_NO_DISPLAY;
}
+ if (mCurrentTexture == buf) {
+ // The current texture no longer references the buffer in this slot
+ // since we just allocated a new buffer.
+ mCurrentTexture = INVALID_BUFFER_SLOT;
+ }
returnFlags |= ISurfaceTexture::BUFFER_NEEDS_REALLOCATION;
}
ST_LOGV("dequeueBuffer: returning slot=%d buf=%p flags=%#x", buf,