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

Commit 32054310 authored by Jayant Chowdhary's avatar Jayant Chowdhary Committed by android-build-merger
Browse files

Merge "AImageReader: make sure ~AImageReader isn't called with...

Merge "AImageReader: make sure ~AImageReader isn't called with FrameListener::mLock held." into qt-r1-dev
am: f4a2a71f

Change-Id: I07830bed9c52adf491989423fe6563996375126d
parents 0b24d97b f4a2a71f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -113,12 +113,12 @@ AImageReader::getNumPlanesForFormat(int32_t format) {

void
AImageReader::FrameListener::onFrameAvailable(const BufferItem& /*item*/) {
    Mutex::Autolock _l(mLock);
    sp<AImageReader> reader = mReader.promote();
    if (reader == nullptr) {
        ALOGW("A frame is available after AImageReader closed!");
        return; // reader has been closed
    }
    Mutex::Autolock _l(mLock);
    if (mListener.onImageAvailable == nullptr) {
        return; // No callback registered
    }
@@ -143,12 +143,12 @@ AImageReader::FrameListener::setImageListener(AImageReader_ImageListener* listen

void
AImageReader::BufferRemovedListener::onBufferFreed(const wp<GraphicBuffer>& graphicBuffer) {
    Mutex::Autolock _l(mLock);
    sp<AImageReader> reader = mReader.promote();
    if (reader == nullptr) {
        ALOGW("A frame is available after AImageReader closed!");
        return; // reader has been closed
    }
    Mutex::Autolock _l(mLock);
    if (mListener.onBufferRemoved == nullptr) {
        return; // No callback registered
    }
+2 −2
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ struct AImageReader : public RefBase {

      private:
        AImageReader_ImageListener mListener = {nullptr, nullptr};
        wp<AImageReader>           mReader;
        const wp<AImageReader>     mReader;
        Mutex                      mLock;
    };
    sp<FrameListener> mFrameListener;
@@ -149,7 +149,7 @@ struct AImageReader : public RefBase {

       private:
        AImageReader_BufferRemovedListener mListener = {nullptr, nullptr};
        wp<AImageReader>           mReader;
        const wp<AImageReader>     mReader;
        Mutex                      mLock;
    };
    sp<BufferRemovedListener> mBufferRemovedListener;