Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 696f0ade authored by Patrick Scott's avatar Patrick Scott Committed by Android Git Automerger
Browse files

am e7b2845d: Merge "DO NOT MERGE return an error when Surface::lock() is...

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
parents e42072d3 30b2c969
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -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();