summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueProducer.cpp
diff options
context:
space:
mode:
author Wonsik Kim <wonsik@google.com> 2017-04-07 15:43:16 -0700
committer Wonsik Kim <wonsik@google.com> 2017-04-07 17:13:11 -0700
commit3e198b2b331c09e8d078b5cd4cb770bcf049c0d1 (patch)
treee4325dd3da6df3208aa458e91ed9a195c4f0ecf5 /libs/gui/BufferQueueProducer.cpp
parent3e7dad572220e2c4b9bfbd471a6278385e99330d (diff)
Return error when trying to disconnect twice
Bug: 34637488 Bug: 36737364 Test: cts-tradefed run cts-dev --module Graphics Test: libgui_test Change-Id: I9deb1e8978e3789269ed1cf9753892b68f246e0f
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
-rw-r--r--libs/gui/BufferQueueProducer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index aef231a252..f101e477bc 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -1267,7 +1267,10 @@ status_t BufferQueueProducer::disconnect(int api, DisconnectMode mode) {
mCore->mSidebandStream.clear();
mCore->mDequeueCondition.broadcast();
listener = mCore->mConsumerListener;
- } else if (mCore->mConnectedApi != BufferQueueCore::NO_CONNECTED_API) {
+ } else if (mCore->mConnectedApi == BufferQueueCore::NO_CONNECTED_API) {
+ BQ_LOGE("disconnect: not connected (req=%d)", api);
+ status = NO_INIT;
+ } else {
BQ_LOGE("disconnect: still connected to another API "
"(cur=%d req=%d)", mCore->mConnectedApi, api);
status = BAD_VALUE;