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

Commit 2c27c4fa authored by Rob Carr's avatar Rob Carr Committed by Automerger Merge Worker
Browse files

Merge "SurfaceFlinger: Null guard for setRelativeLayer" into sc-dev am: ab7a201e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/13421225

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5a800f1cf8d1a275bc4faaf4964b7ebd41f645ba
parents 9035e59e ab7a201e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -3734,9 +3734,11 @@ uint32_t SurfaceFlinger::setClientStateLocked(
    if (what & layer_state_t::eRelativeLayerChanged) {
        // NOTE: index needs to be calculated before we update the state
        const auto& p = layer->getParent();
        const auto& relativeHandle = s.relativeLayerSurfaceControl ?
                s.relativeLayerSurfaceControl->getHandle() : nullptr;
        if (p == nullptr) {
            ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer);
            if (layer->setRelativeLayer(s.relativeLayerSurfaceControl->getHandle(), s.z) &&
            if (layer->setRelativeLayer(relativeHandle, s.z) &&
                idx >= 0) {
                mCurrentState.layersSortedByZ.removeAt(idx);
                mCurrentState.layersSortedByZ.add(layer);
@@ -3745,7 +3747,7 @@ uint32_t SurfaceFlinger::setClientStateLocked(
                flags |= eTransactionNeeded|eTraversalNeeded;
            }
        } else {
            if (p->setChildRelativeLayer(layer, s.relativeLayerSurfaceControl->getHandle(), s.z)) {
            if (p->setChildRelativeLayer(layer, relativeHandle, s.z)) {
                flags |= eTransactionNeeded|eTraversalNeeded;
            }
        }