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

Commit 0852e674 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

attempt to fix [2099362] Possible SurfaceFlinger crash

parent 89b9bd46
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -573,10 +573,12 @@ void SurfaceFlinger::handleTransaction(uint32_t transactionFlags)
    // do this without lock held
    // do this without lock held
    const size_t count = ditchedLayers.size();
    const size_t count = ditchedLayers.size();
    for (size_t i=0 ; i<count ; i++) {
    for (size_t i=0 ; i<count ; i++) {
        if (ditchedLayers[i] != 0) {
            //LOGD("ditching layer %p", ditchedLayers[i].get());
            //LOGD("ditching layer %p", ditchedLayers[i].get());
            ditchedLayers[i]->ditch();
            ditchedLayers[i]->ditch();
        }
        }
    }
    }
}


void SurfaceFlinger::handleTransactionLocked(
void SurfaceFlinger::handleTransactionLocked(
        uint32_t transactionFlags, Vector< sp<LayerBase> >& ditchedLayers)
        uint32_t transactionFlags, Vector< sp<LayerBase> >& ditchedLayers)
@@ -1082,6 +1084,8 @@ status_t SurfaceFlinger::invalidateLayerVisibility(const sp<LayerBase>& layer)


status_t SurfaceFlinger::addLayer_l(const sp<LayerBase>& layer)
status_t SurfaceFlinger::addLayer_l(const sp<LayerBase>& layer)
{
{
    if (layer == 0)
        return BAD_VALUE;
    ssize_t i = mCurrentState.layersSortedByZ.add(
    ssize_t i = mCurrentState.layersSortedByZ.add(
                layer, &LayerBase::compareCurrentStateZ);
                layer, &LayerBase::compareCurrentStateZ);
    sp<LayerBaseClient> lbc = LayerBase::dynamicCast< LayerBaseClient* >(layer.get());
    sp<LayerBaseClient> lbc = LayerBase::dynamicCast< LayerBaseClient* >(layer.get());