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

Commit 3db547c4 authored by Linnan Li's avatar Linnan Li
Browse files

Exit the loop after confirming the id

During the process of assigning an id to the pointer, if we have already
confirmed the pointer's id, we should exit any unnecessary loops.

Bug: none
Test: atest inputflinger_tests

Change-Id: I77d5cf969419322a91f051aeaf4a65909dbefb3e
parent 951e7350
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -140,13 +140,14 @@ void MultiTouchInputMapper::syncTouch(nsecs_t when, RawState* outState) {


        // Assign pointer id using tracking id if available.
        // Assign pointer id using tracking id if available.
        if (mHavePointerIds) {
        if (mHavePointerIds) {
            int32_t trackingId = inSlot.getTrackingId();
            const int32_t trackingId = inSlot.getTrackingId();
            int32_t id = -1;
            int32_t id = -1;
            if (trackingId >= 0) {
            if (trackingId >= 0) {
                for (BitSet32 idBits(mPointerIdBits); !idBits.isEmpty();) {
                for (BitSet32 idBits(mPointerIdBits); !idBits.isEmpty();) {
                    uint32_t n = idBits.clearFirstMarkedBit();
                    uint32_t n = idBits.clearFirstMarkedBit();
                    if (mPointerTrackingIdMap[n] == trackingId) {
                    if (mPointerTrackingIdMap[n] == trackingId) {
                        id = n;
                        id = n;
                        break;
                    }
                    }
                }
                }