diff options
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 2ad1b32..f5c6e73 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -4023,17 +4023,21 @@ dummy_func( _CALL_STR_1 + _CHECK_PERIODIC; - op(_CALL_TUPLE_1, (callable, null, arg -- res)) { + op(_GUARD_CALLABLE_TUPLE_1, (callable, unused, unused -- callable, unused, unused)) { PyObject *callable_o = PyStackRef_AsPyObjectBorrow(callable); + DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type); + } + + op(_CALL_TUPLE_1, (callable, null, arg -- res)) { PyObject *arg_o = PyStackRef_AsPyObjectBorrow(arg); assert(oparg == 1); - DEOPT_IF(!PyStackRef_IsNull(null)); - DEOPT_IF(callable_o != (PyObject *)&PyTuple_Type); STAT_INC(CALL, hit); PyObject *res_o = PySequence_Tuple(arg_o); DEAD(null); DEAD(callable); + (void)callable; // Silence compiler warnings about unused variables + (void)null; PyStackRef_CLOSE(arg); ERROR_IF(res_o == NULL, error); res = PyStackRef_FromPyObjectSteal(res_o); @@ -4042,6 +4046,8 @@ dummy_func( macro(CALL_TUPLE_1) = unused/1 + unused/2 + + _GUARD_NOS_NULL + + _GUARD_CALLABLE_TUPLE_1 + _CALL_TUPLE_1 + _CHECK_PERIODIC; |