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

Commit f4ddfacf authored by Steve Pfetsch's avatar Steve Pfetsch Committed by android-build-merger
Browse files

services: surfaceflinger: ASAN fix am: 1d3df546 am: ff06017c

am: 409c087f

Change-Id: Ia0a821a314c9bc5582cef8f434a77115599263e2
parents e53b8895 409c087f
Loading
Loading
Loading
Loading
+8 −9
Original line number Original line Diff line number Diff line
@@ -1836,9 +1836,12 @@ void SurfaceFlinger::updateCursorAsync()


void SurfaceFlinger::commitTransaction()
void SurfaceFlinger::commitTransaction()
{
{
    if (!mLayersPendingRemoval.isEmpty()) {
    sp<const DisplayDevice> hw = getDefaultDisplayDevice();

    if (!mLayersPendingRemoval.isEmpty() && hw->isDisplayOn()) {
        // Notify removed layers now that they can't be drawn from
        // Notify removed layers now that they can't be drawn from
        for (size_t i = 0; i < mLayersPendingRemoval.size(); i++) {
        for (size_t i = 0; i < mLayersPendingRemoval.size(); i++) {
            mCurrentState.layersSortedByZ.remove(mLayersPendingRemoval[i]);
            recordBufferingStats(mLayersPendingRemoval[i]->getName().string(),
            recordBufferingStats(mLayersPendingRemoval[i]->getName().string(),
                    mLayersPendingRemoval[i]->getOccupancyHistory(true));
                    mLayersPendingRemoval[i]->getOccupancyHistory(true));
            mLayersPendingRemoval[i]->onRemoved();
            mLayersPendingRemoval[i]->onRemoved();
@@ -2285,15 +2288,11 @@ status_t SurfaceFlinger::removeLayer(const wp<Layer>& weakLayer) {
        return NO_ERROR;
        return NO_ERROR;
    }
    }


    ssize_t index = mCurrentState.layersSortedByZ.remove(layer);
    if (index >= 0) {
    mLayersPendingRemoval.push(layer);
    mLayersPendingRemoval.push(layer);
    mLayersRemoved = true;
    mLayersRemoved = true;
    setTransactionFlags(eTransactionNeeded);
    setTransactionFlags(eTransactionNeeded);
    return NO_ERROR;
    return NO_ERROR;
}
}
    return status_t(index);
}


uint32_t SurfaceFlinger::peekTransactionFlags(uint32_t /* flags */) {
uint32_t SurfaceFlinger::peekTransactionFlags(uint32_t /* flags */) {
    return android_atomic_release_load(&mTransactionFlags);
    return android_atomic_release_load(&mTransactionFlags);