Decrement before as the code makes more sense

This commit is contained in:
Susko3
2024-05-20 19:38:50 +02:00
committed by Sam Lantinga
parent 9458dc07dc
commit 9d03ff6c18
+6 -6
View File
@@ -240,15 +240,15 @@ static int SDL_DelFinger(SDL_Touch *touch, SDL_FingerID fingerid)
return -1; return -1;
} }
if (index < (touch->num_fingers - 1)) { --touch->num_fingers;
// Move the deleted finger to the end of the active fingers array and shift the active fingers by one. if (index < (touch->num_fingers)) {
// This ensures that the descriptor for the now-deleted finger is located at `touch->fingers[touch->num_fingers]` (after the decrement below) // Move the deleted finger to just past the end of the active fingers array and shift the active fingers by one.
// This ensures that the descriptor for the now-deleted finger is located at `touch->fingers[touch->num_fingers]`
// and is ready for use in SDL_AddFinger. // and is ready for use in SDL_AddFinger.
SDL_Finger *deleted_finger = touch->fingers[index]; SDL_Finger *deleted_finger = touch->fingers[index];
SDL_memmove(&touch->fingers[index], &touch->fingers[index + 1], (touch->num_fingers - index - 1) * sizeof(touch->fingers[index])); SDL_memmove(&touch->fingers[index], &touch->fingers[index + 1], (touch->num_fingers - index) * sizeof(touch->fingers[index]));
touch->fingers[touch->num_fingers - 1] = deleted_finger; touch->fingers[touch->num_fingers] = deleted_finger;
} }
--touch->num_fingers;
return 0; return 0;
} }