diff options
Diffstat (limited to 'libs/ui')
-rw-r--r-- | libs/ui/SharedBufferStack.cpp | 13 | ||||
-rw-r--r-- | libs/ui/Surface.cpp | 8 |
2 files changed, 15 insertions, 6 deletions
diff --git a/libs/ui/SharedBufferStack.cpp b/libs/ui/SharedBufferStack.cpp index 9ad4349..47c596c 100644 --- a/libs/ui/SharedBufferStack.cpp +++ b/libs/ui/SharedBufferStack.cpp @@ -114,6 +114,12 @@ uint32_t SharedBufferBase::getIdentity() return stack.identity; } +status_t SharedBufferBase::getStatus() const +{ + SharedBufferStack& stack( *mSharedStack ); + return stack.status; +} + size_t SharedBufferBase::getFrontBuffer() const { SharedBufferStack& stack( *mSharedStack ); @@ -135,7 +141,6 @@ String8 SharedBufferBase::dump(char const* prefix) const return result; } - // ============================================================================ // conditions and updates // ============================================================================ @@ -375,8 +380,10 @@ status_t SharedBufferServer::unlock(int buffer) void SharedBufferServer::setStatus(status_t status) { - StatusUpdate update(this, status); - updateCondition( update ); + if (status < NO_ERROR) { + StatusUpdate update(this, status); + updateCondition( update ); + } } status_t SharedBufferServer::reallocate() diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp index 64522fb..285edb4 100644 --- a/libs/ui/Surface.cpp +++ b/libs/ui/Surface.cpp @@ -733,9 +733,11 @@ status_t Surface::getBufferLocked(int index, int usage) index, usage); if (buffer != 0) { // this should never happen by construction LOGE_IF(buffer->handle == NULL, - "requestBuffer(%d, %08x) returned a buffer with a null handle", - index, usage); - if (buffer->handle != NULL) { + "Surface (identity=%d) requestBuffer(%d, %08x) returned" + "a buffer with a null handle", mIdentity, index, usage); + err = mSharedBufferClient->getStatus(); + LOGE_IF(err, "Surface (identity=%d) state = %d", mIdentity, err); + if (!err && buffer->handle != NULL) { err = getBufferMapper().registerBuffer(buffer->handle); LOGW_IF(err, "registerBuffer(...) failed %d (%s)", err, strerror(-err)); |