From 3e198b2b331c09e8d078b5cd4cb770bcf049c0d1 Mon Sep 17 00:00:00 2001 From: Wonsik Kim Date: Fri, 7 Apr 2017 15:43:16 -0700 Subject: 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 --- libs/gui/BufferQueueProducer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libs/gui/BufferQueueProducer.cpp') 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; -- cgit v1.2.3-59-g8ed1b