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

Commit 6990af63 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "blast: fix leak on BufferStateLayer death" into qt-dev

parents e377b272 0e24a838
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -197,8 +197,14 @@ status_t TransactionCompletedThread::addCallbackHandle(const sp<CallbackHandle>&
    }

    transactionStats->latchTime = handle->latchTime;
    transactionStats->surfaceStats.emplace_back(handle->surfaceControl, handle->acquireTime,
    // If the layer has already been destroyed, don't add the SurfaceControl to the callback.
    // The client side keeps a sp<> to the SurfaceControl so if the SurfaceControl has been
    // destroyed the client side is dead and there won't be anyone to send the callback to.
    sp<IBinder> surfaceControl = handle->surfaceControl.promote();
    if (surfaceControl) {
        transactionStats->surfaceStats.emplace_back(surfaceControl, handle->acquireTime,
                                                    handle->previousReleaseFence);
    }
    return NO_ERROR;
}

+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ public:

    sp<ITransactionCompletedListener> listener;
    std::vector<CallbackId> callbackIds;
    sp<IBinder> surfaceControl;
    wp<IBinder> surfaceControl;

    bool releasePreviousBuffer = false;
    sp<Fence> previousReleaseFence;