@@ -81,13 +81,14 @@ static inline vectorcallfunc
81
81
_PyVectorcall_Function (PyObject * callable )
82
82
{
83
83
PyTypeObject * tp = Py_TYPE (callable );
84
+ Py_ssize_t offset = tp -> tp_vectorcall_offset ;
85
+ vectorcallfunc * ptr ;
84
86
if (!PyType_HasFeature (tp , _Py_TPFLAGS_HAVE_VECTORCALL )) {
85
87
return NULL ;
86
88
}
87
89
assert (PyCallable_Check (callable ));
88
- Py_ssize_t offset = tp -> tp_vectorcall_offset ;
89
90
assert (offset > 0 );
90
- vectorcallfunc * ptr = (vectorcallfunc * )(((char * )callable ) + offset );
91
+ ptr = (vectorcallfunc * )(((char * )callable ) + offset );
91
92
return * ptr ;
92
93
}
93
94
@@ -114,14 +115,16 @@ static inline PyObject *
114
115
_PyObject_Vectorcall (PyObject * callable , PyObject * const * args ,
115
116
size_t nargsf , PyObject * kwnames )
116
117
{
118
+ PyObject * res ;
119
+ vectorcallfunc func ;
117
120
assert (kwnames == NULL || PyTuple_Check (kwnames ));
118
121
assert (args != NULL || PyVectorcall_NARGS (nargsf ) == 0 );
119
- vectorcallfunc func = _PyVectorcall_Function (callable );
122
+ func = _PyVectorcall_Function (callable );
120
123
if (func == NULL ) {
121
124
Py_ssize_t nargs = PyVectorcall_NARGS (nargsf );
122
125
return _PyObject_MakeTpCall (callable , args , nargs , kwnames );
123
126
}
124
- PyObject * res = func (callable , args , nargsf , kwnames );
127
+ res = func (callable , args , nargsf , kwnames );
125
128
return _Py_CheckFunctionResult (callable , res , NULL );
126
129
}
127
130
0 commit comments