diff options
| author | 2017-04-07 15:43:16 -0700 | |
|---|---|---|
| committer | 2017-04-07 17:13:11 -0700 | |
| commit | 3e198b2b331c09e8d078b5cd4cb770bcf049c0d1 (patch) | |
| tree | e4325dd3da6df3208aa458e91ed9a195c4f0ecf5 /libs/gui/BufferQueueProducer.cpp | |
| parent | 3e7dad572220e2c4b9bfbd471a6278385e99330d (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.cpp | 5 |
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; |