gh-121459: Fix a couple of uses of PyStackRef_FromPyObjectSteal
(#125711)
* Fix usage of PyStackRef_FromPyObjectSteal in CALL_TUPLE_1 This was missed in gh-124894 * Fix usage of PyStackRef_FromPyObjectSteal in _CALL_STR_1 This was missed in gh-124894 * Regenerate code
This commit is contained in:
parent
695814c6e9
commit
de5a6c7c7d
@ -3629,11 +3629,12 @@ dummy_func(
|
|||||||
DEOPT_IF(!PyStackRef_IsNull(null));
|
DEOPT_IF(!PyStackRef_IsNull(null));
|
||||||
DEOPT_IF(callable_o != (PyObject *)&PyUnicode_Type);
|
DEOPT_IF(callable_o != (PyObject *)&PyUnicode_Type);
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
res = PyStackRef_FromPyObjectSteal(PyObject_Str(arg_o));
|
PyObject *res_o = PyObject_Str(arg_o);
|
||||||
DEAD(null);
|
DEAD(null);
|
||||||
DEAD(callable);
|
DEAD(callable);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
ERROR_IF(PyStackRef_IsNull(res), error);
|
ERROR_IF(res_o == NULL, error);
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
}
|
}
|
||||||
|
|
||||||
macro(CALL_STR_1) =
|
macro(CALL_STR_1) =
|
||||||
@ -3650,11 +3651,12 @@ dummy_func(
|
|||||||
DEOPT_IF(!PyStackRef_IsNull(null));
|
DEOPT_IF(!PyStackRef_IsNull(null));
|
||||||
DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type);
|
DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type);
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
res = PyStackRef_FromPyObjectSteal(PySequence_Tuple(arg_o));
|
PyObject *res_o = PySequence_Tuple(arg_o);
|
||||||
DEAD(null);
|
DEAD(null);
|
||||||
DEAD(callable);
|
DEAD(callable);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
ERROR_IF(PyStackRef_IsNull(res), error);
|
ERROR_IF(res_o == NULL, error);
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
}
|
}
|
||||||
|
|
||||||
macro(CALL_TUPLE_1) =
|
macro(CALL_TUPLE_1) =
|
||||||
|
10
Python/executor_cases.c.h
generated
10
Python/executor_cases.c.h
generated
@ -4299,10 +4299,11 @@
|
|||||||
}
|
}
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
_PyFrame_SetStackPointer(frame, stack_pointer);
|
_PyFrame_SetStackPointer(frame, stack_pointer);
|
||||||
res = PyStackRef_FromPyObjectSteal(PyObject_Str(arg_o));
|
PyObject *res_o = PyObject_Str(arg_o);
|
||||||
stack_pointer = _PyFrame_GetStackPointer(frame);
|
stack_pointer = _PyFrame_GetStackPointer(frame);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
if (PyStackRef_IsNull(res)) JUMP_TO_ERROR();
|
if (res_o == NULL) JUMP_TO_ERROR();
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
stack_pointer[-3] = res;
|
stack_pointer[-3] = res;
|
||||||
stack_pointer += -2;
|
stack_pointer += -2;
|
||||||
assert(WITHIN_STACK_BOUNDS());
|
assert(WITHIN_STACK_BOUNDS());
|
||||||
@ -4331,10 +4332,11 @@
|
|||||||
}
|
}
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
_PyFrame_SetStackPointer(frame, stack_pointer);
|
_PyFrame_SetStackPointer(frame, stack_pointer);
|
||||||
res = PyStackRef_FromPyObjectSteal(PySequence_Tuple(arg_o));
|
PyObject *res_o = PySequence_Tuple(arg_o);
|
||||||
stack_pointer = _PyFrame_GetStackPointer(frame);
|
stack_pointer = _PyFrame_GetStackPointer(frame);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
if (PyStackRef_IsNull(res)) JUMP_TO_ERROR();
|
if (res_o == NULL) JUMP_TO_ERROR();
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
stack_pointer[-3] = res;
|
stack_pointer[-3] = res;
|
||||||
stack_pointer += -2;
|
stack_pointer += -2;
|
||||||
assert(WITHIN_STACK_BOUNDS());
|
assert(WITHIN_STACK_BOUNDS());
|
||||||
|
10
Python/generated_cases.c.h
generated
10
Python/generated_cases.c.h
generated
@ -2978,10 +2978,11 @@
|
|||||||
DEOPT_IF(callable_o != (PyObject *)&PyUnicode_Type, CALL);
|
DEOPT_IF(callable_o != (PyObject *)&PyUnicode_Type, CALL);
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
_PyFrame_SetStackPointer(frame, stack_pointer);
|
_PyFrame_SetStackPointer(frame, stack_pointer);
|
||||||
res = PyStackRef_FromPyObjectSteal(PyObject_Str(arg_o));
|
PyObject *res_o = PyObject_Str(arg_o);
|
||||||
stack_pointer = _PyFrame_GetStackPointer(frame);
|
stack_pointer = _PyFrame_GetStackPointer(frame);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
if (PyStackRef_IsNull(res)) goto pop_3_error;
|
if (res_o == NULL) goto pop_3_error;
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
}
|
}
|
||||||
// _CHECK_PERIODIC
|
// _CHECK_PERIODIC
|
||||||
{
|
{
|
||||||
@ -3028,10 +3029,11 @@
|
|||||||
DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type, CALL);
|
DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type, CALL);
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
_PyFrame_SetStackPointer(frame, stack_pointer);
|
_PyFrame_SetStackPointer(frame, stack_pointer);
|
||||||
res = PyStackRef_FromPyObjectSteal(PySequence_Tuple(arg_o));
|
PyObject *res_o = PySequence_Tuple(arg_o);
|
||||||
stack_pointer = _PyFrame_GetStackPointer(frame);
|
stack_pointer = _PyFrame_GetStackPointer(frame);
|
||||||
PyStackRef_CLOSE(arg);
|
PyStackRef_CLOSE(arg);
|
||||||
if (PyStackRef_IsNull(res)) goto pop_3_error;
|
if (res_o == NULL) goto pop_3_error;
|
||||||
|
res = PyStackRef_FromPyObjectSteal(res_o);
|
||||||
}
|
}
|
||||||
// _CHECK_PERIODIC
|
// _CHECK_PERIODIC
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user