Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72b59753 authored by Pablo Ceballos's avatar Pablo Ceballos Committed by Android (Google) Code Review
Browse files

Merge "BQ: Avoid unnecessary calls to consumer listener" into nyc-dev

parents 4908a010 245cc5b5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -622,6 +622,10 @@ status_t BufferQueueConsumer::setMaxAcquiredBufferCount(
            return NO_INIT;
        }

        if (maxAcquiredBuffers == mCore->mMaxAcquiredBufferCount) {
            return NO_ERROR;
        }

        // The new maxAcquiredBuffers count should not be violated by the number
        // of currently acquired buffers
        int acquiredCount = 0;
+11 −1
Original line number Diff line number Diff line
@@ -101,6 +101,10 @@ status_t BufferQueueProducer::setMaxDequeuedBufferCount(
            return NO_INIT;
        }

        if (maxDequeuedBuffers == mCore->mMaxDequeuedBufferCount) {
            return NO_ERROR;
        }

        // The new maxDequeuedBuffer count should not be violated by the number
        // of currently dequeued buffers
        int dequeuedCount = 0;
@@ -175,6 +179,10 @@ status_t BufferQueueProducer::setAsyncMode(bool async) {
            return NO_INIT;
        }

        if (async == mCore->mAsyncMode) {
            return NO_ERROR;
        }

        if ((mCore->mMaxAcquiredBufferCount + mCore->mMaxDequeuedBufferCount +
                (async || mCore->mDequeueBufferCannotBlock ? 1 : 0)) >
                mCore->mMaxBufferCount) {
@@ -199,7 +207,9 @@ status_t BufferQueueProducer::setAsyncMode(bool async) {
        mCore->mAsyncMode = async;
        VALIDATE_CONSISTENCY();
        mCore->mDequeueCondition.broadcast();
        if (delta < 0) {
            listener = mCore->mConsumerListener;
        }
    } // Autolock scope

    // Call back without lock held