Consistent use of valid index check

eendebakpt · GitHub

Feature or enhancement

In listobject.c there is an

optimization

to check whether an index is valid (e.g. 0 <= index < N) using a single comparison. The same optimization is not used in other files such as tupleobject.c.

By replacing index checks with a single macro that includes the optimization we have consistency in the code and have the optimized check for all index checks.

Previous discussion

Idea first mentioned at

faster-cpython/ideas#498

Linked PRs

gh-99761: add invalid_index macro #99762

gh-99761: Add _PyLong_IsPositiveSingleDigit #100064