am e7b2845d: Merge "DO NOT MERGE return an error when Surface::lock() is called while the surface is already locked." into eclair-mr2
Merge commit 'e7b2845d685a583e8e84de369b6acfa1bebeabf4' into eclair-mr2-plus-aosp * commit 'e7b2845d685a583e8e84de369b6acfa1bebeabf4': DO NOT MERGE
This commit is contained in:
@@ -607,13 +607,21 @@ status_t Surface::lock(SurfaceInfo* info, bool blocking) {
|
||||
status_t Surface::lock(SurfaceInfo* other, Region* dirtyIn, bool blocking)
|
||||
{
|
||||
if (mApiLock.tryLock() != NO_ERROR) {
|
||||
LOGE("calling Surface::lock() from different threads!");
|
||||
LOGE("calling Surface::lock from different threads!");
|
||||
CallStack stack;
|
||||
stack.update();
|
||||
stack.dump("Surface::lock called from different threads");
|
||||
return WOULD_BLOCK;
|
||||
}
|
||||
|
||||
/* Here we're holding mApiLock */
|
||||
|
||||
if (mLockedBuffer != 0) {
|
||||
LOGE("Surface::lock failed, already locked");
|
||||
mApiLock.unlock();
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
|
||||
// we're intending to do software rendering from this point
|
||||
setUsage(GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN);
|
||||
|
||||
@@ -682,8 +690,8 @@ status_t Surface::lock(SurfaceInfo* other, Region* dirtyIn, bool blocking)
|
||||
status_t Surface::unlockAndPost()
|
||||
{
|
||||
if (mLockedBuffer == 0) {
|
||||
LOGE("unlockAndPost failed, no locked buffer");
|
||||
return BAD_VALUE;
|
||||
LOGE("Surface::unlockAndPost failed, no locked buffer");
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
|
||||
status_t err = mLockedBuffer->unlock();
|
||||
|
||||
Reference in New Issue
Block a user