summaryrefslogtreecommitdiffstats
path: root/libs/ui
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ui')
-rw-r--r--libs/ui/SharedBufferStack.cpp13
-rw-r--r--libs/ui/Surface.cpp8
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));