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

Commit 37815d16 authored by Jesse Hall's avatar Jesse Hall Committed by Android (Google) Code Review
Browse files

Merge "Move remaining bits of lockBuffer to dequeueBuffer"

parents 52aab9cb a74cbc06
Loading
Loading
Loading
Loading
+4 −13
Original line number Original line Diff line number Diff line
@@ -237,10 +237,12 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window,
    if (self->mBufferHead >= self->mNumBuffers)
    if (self->mBufferHead >= self->mNumBuffers)
        self->mBufferHead = 0;
        self->mBufferHead = 0;


    // wait for a free buffer
    // wait for a free non-front buffer
    while (!self->mNumFreeBuffers) {
    while (self->mNumFreeBuffers < 2) {
        self->mCondition.wait(self->mutex);
        self->mCondition.wait(self->mutex);
    }
    }
    ALOG_ASSERT(self->buffers[index] != self->front);

    // get this buffer
    // get this buffer
    self->mNumFreeBuffers--;
    self->mNumFreeBuffers--;
    self->mCurrentBufferIndex = index;
    self->mCurrentBufferIndex = index;
@@ -254,17 +256,6 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window,
int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, 
int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, 
        ANativeWindowBuffer* buffer)
        ANativeWindowBuffer* buffer)
{
{
    // XXX: Can this code all get ripped out?  Should it move to dequeueBuffer?
    FramebufferNativeWindow* self = getSelf(window);
    Mutex::Autolock _l(self->mutex);

    const int index = self->mCurrentBufferIndex;

    // wait that the buffer we're locking is not front anymore
    while (self->front == buffer) {
        self->mCondition.wait(self->mutex);
    }

    return NO_ERROR;
    return NO_ERROR;
}
}