@@ -391,8 +391,7 @@ dummy_func(
391391 DEOPT_IF (!PyList_CheckExact (list ), BINARY_SUBSCR );
392392
393393 // Deopt unless 0 <= sub < PyList_Size(list)
394- Py_ssize_t signed_magnitude = Py_SIZE (sub );
395- DEOPT_IF (((size_t )signed_magnitude ) > 1 , BINARY_SUBSCR );
394+ DEOPT_IF (!_PyLong_IsPositiveSingleDigit (sub ), BINARY_SUBSCR );
396395 assert (((PyLongObject * )_PyLong_GetZero ())-> ob_digit [0 ] == 0 );
397396 Py_ssize_t index = ((PyLongObject * )sub )-> ob_digit [0 ];
398397 DEOPT_IF (index >= PyList_GET_SIZE (list ), BINARY_SUBSCR );
@@ -410,8 +409,7 @@ dummy_func(
410409 DEOPT_IF (!PyTuple_CheckExact (tuple ), BINARY_SUBSCR );
411410
412411 // Deopt unless 0 <= sub < PyTuple_Size(list)
413- Py_ssize_t signed_magnitude = Py_SIZE (sub );
414- DEOPT_IF (((size_t )signed_magnitude ) > 1 , BINARY_SUBSCR );
412+ DEOPT_IF (!_PyLong_IsPositiveSingleDigit (sub ), BINARY_SUBSCR );
415413 assert (((PyLongObject * )_PyLong_GetZero ())-> ob_digit [0 ] == 0 );
416414 Py_ssize_t index = ((PyLongObject * )sub )-> ob_digit [0 ];
417415 DEOPT_IF (index >= PyTuple_GET_SIZE (tuple ), BINARY_SUBSCR );
@@ -508,7 +506,7 @@ dummy_func(
508506 DEOPT_IF (!PyList_CheckExact (list ), STORE_SUBSCR );
509507
510508 // Ensure nonnegative, zero-or-one-digit ints.
511- DEOPT_IF ((( size_t ) Py_SIZE ( sub )) > 1 , STORE_SUBSCR );
509+ DEOPT_IF (! _PyLong_IsPositiveSingleDigit ( sub ), STORE_SUBSCR );
512510 Py_ssize_t index = ((PyLongObject * )sub )-> ob_digit [0 ];
513511 // Ensure index < len(list)
514512 DEOPT_IF (index >= PyList_GET_SIZE (list ), STORE_SUBSCR );
0 commit comments