Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Prev Previous commit
Next Next commit
fix DEOPT_IF and INPUTS_DEAD
  • Loading branch information
chris-eibl committed Jan 4, 2026
commit 00a2bb4a06a0df396e63d4ac464dc721583b17a9
8 changes: 4 additions & 4 deletions Python/bytecodes.c
Original file line number Diff line number Diff line change
Expand Up @@ -951,16 +951,16 @@ dummy_func(

assert(PyLong_CheckExact(sub));
assert(PyUnicode_CheckExact(str));
assert(_PyLong_IsNonNegativeCompact((PyLongObject *)sub));
DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject*)sub));
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
DEOPT_IF(PyUnicode_GET_LENGTH(str) <= index);
uint8_t c = PyUnicode_1BYTE_DATA(str)[index];
assert(c < 128);
STAT_INC(BINARY_OP, hit);
PyObject *res_o = (PyObject*)&_Py_SINGLETON(strings).ascii[c];
INPUTS_DEAD();
s = str_st;
i = sub_st;
INPUTS_DEAD();
res = PyStackRef_FromPyObjectBorrow(res_o);
}

Expand All @@ -973,17 +973,17 @@ dummy_func(

assert(PyLong_CheckExact(sub));
assert(PyUnicode_CheckExact(str));
assert(_PyLong_IsNonNegativeCompact((PyLongObject *)sub));
DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject*)sub));
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
DEOPT_IF(PyUnicode_GET_LENGTH(str) <= index);
// Specialize for reading an ASCII character from any string:
Py_UCS4 c = PyUnicode_READ_CHAR(str, index);
DEOPT_IF(Py_ARRAY_LENGTH(_Py_SINGLETON(strings).ascii) <= c);
STAT_INC(BINARY_OP, hit);
PyObject *res_o = (PyObject*)&_Py_SINGLETON(strings).ascii[c];
INPUTS_DEAD();
s = str_st;
i = sub_st;
INPUTS_DEAD();
res = PyStackRef_FromPyObjectBorrow(res_o);
}

Expand Down
16 changes: 14 additions & 2 deletions Python/executor_cases.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions Python/generated_cases.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading