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

Commit 51af7e9c authored by Ivan Lozano's avatar Ivan Lozano Committed by Android (Google) Code Review
Browse files

Merge "Fix surfaceflinger on integer sanitized builds."

parents 532a5524 80de6f35
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -71,7 +71,7 @@ Layer::Layer(SurfaceFlinger* flinger, const sp<Client>& client,
    :   contentDirty(false),
    :   contentDirty(false),
        sequence(uint32_t(android_atomic_inc(&sSequence))),
        sequence(uint32_t(android_atomic_inc(&sSequence))),
        mFlinger(flinger),
        mFlinger(flinger),
        mTextureName(-1U),
        mTextureName(UINT32_MAX),
        mPremultipliedAlpha(true),
        mPremultipliedAlpha(true),
        mName("unnamed"),
        mName("unnamed"),
        mFormat(PIXEL_FORMAT_NONE),
        mFormat(PIXEL_FORMAT_NONE),
@@ -2702,6 +2702,7 @@ int32_t Layer::getZ() const {
    return mDrawingState.z;
    return mDrawingState.z;
}
}


__attribute__((no_sanitize("unsigned-integer-overflow")))
LayerVector Layer::makeTraversalList(LayerVector::StateSet stateSet) {
LayerVector Layer::makeTraversalList(LayerVector::StateSet stateSet) {
    LOG_ALWAYS_FATAL_IF(stateSet == LayerVector::StateSet::Invalid,
    LOG_ALWAYS_FATAL_IF(stateSet == LayerVector::StateSet::Invalid,
                        "makeTraversalList received invalid stateSet");
                        "makeTraversalList received invalid stateSet");
+6 −3
Original line number Original line Diff line number Diff line
@@ -35,14 +35,17 @@ int LayerVector::do_compare(const void* lhs, const void* rhs) const
    uint32_t ls = l->getCurrentState().layerStack;
    uint32_t ls = l->getCurrentState().layerStack;
    uint32_t rs = r->getCurrentState().layerStack;
    uint32_t rs = r->getCurrentState().layerStack;
    if (ls != rs)
    if (ls != rs)
        return ls - rs;
        return (ls > rs) ? 1 : -1;


    uint32_t lz = l->getCurrentState().z;
    uint32_t lz = l->getCurrentState().z;
    uint32_t rz = r->getCurrentState().z;
    uint32_t rz = r->getCurrentState().z;
    if (lz != rz)
    if (lz != rz)
        return lz - rz;
        return (lz > rz) ? 1 : -1;


    return l->sequence - r->sequence;
    if (l->sequence == r->sequence)
        return 0;

    return (l->sequence > r->sequence) ? 1 : -1;
}
}


void LayerVector::traverseInZOrder(StateSet stateSet, const Visitor& visitor) const {
void LayerVector::traverseInZOrder(StateSet stateSet, const Visitor& visitor) const {