|
1574 | 1574 | } |
1575 | 1575 | if (Py_TYPE(callable_o) == &PyFunction_Type && |
1576 | 1576 | !IS_PEP523_HOOKED(tstate) && |
1577 | | - ((PyFunctionObject *)callable_o)->vectorcall == _PyFunction_Vectorcall) |
| 1577 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 1578 | + ((PyFunctionObject *)callable_o)->vectorcall) == |
| 1579 | + _PyFunction_Vectorcall) |
1578 | 1580 | { |
1579 | 1581 | int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable_o))->co_flags; |
1580 | 1582 | PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable_o)); |
|
2629 | 2631 | else { |
2630 | 2632 | if (Py_TYPE(func) == &PyFunction_Type && |
2631 | 2633 | !IS_PEP523_HOOKED(tstate) && |
2632 | | - ((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall) { |
| 2634 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 2635 | + ((PyFunctionObject *)func)->vectorcall) == |
| 2636 | + _PyFunction_Vectorcall) { |
2633 | 2637 | PyObject *callargs = PyStackRef_AsPyObjectSteal(callargs_st); |
2634 | 2638 | assert(PyTuple_CheckExact(callargs)); |
2635 | 2639 | PyObject *kwargs = PyStackRef_IsNull(kwargs_st) ? NULL : PyStackRef_AsPyObjectSteal(kwargs_st); |
|
2910 | 2914 | int positional_args = total_args - (int)PyTuple_GET_SIZE(kwnames_o); |
2911 | 2915 | if (Py_TYPE(callable_o) == &PyFunction_Type && |
2912 | 2916 | !IS_PEP523_HOOKED(tstate) && |
2913 | | - ((PyFunctionObject *)callable_o)->vectorcall == _PyFunction_Vectorcall) |
| 2917 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 2918 | + ((PyFunctionObject *)callable_o)->vectorcall) == |
| 2919 | + _PyFunction_Vectorcall) |
2914 | 2920 | { |
2915 | 2921 | int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable_o))->co_flags; |
2916 | 2922 | PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable_o)); |
|
7973 | 7979 | } |
7974 | 7980 | if (Py_TYPE(callable_o) == &PyFunction_Type && |
7975 | 7981 | !IS_PEP523_HOOKED(tstate) && |
7976 | | - ((PyFunctionObject *)callable_o)->vectorcall == _PyFunction_Vectorcall) |
| 7982 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 7983 | + ((PyFunctionObject *)callable_o)->vectorcall) == |
| 7984 | + _PyFunction_Vectorcall) |
7977 | 7985 | { |
7978 | 7986 | int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable_o))->co_flags; |
7979 | 7987 | PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable_o)); |
|
8189 | 8197 | else { |
8190 | 8198 | if (Py_TYPE(func) == &PyFunction_Type && |
8191 | 8199 | !IS_PEP523_HOOKED(tstate) && |
8192 | | - ((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall) { |
| 8200 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 8201 | + ((PyFunctionObject *)func)->vectorcall) == |
| 8202 | + _PyFunction_Vectorcall) { |
8193 | 8203 | PyObject *callargs = PyStackRef_AsPyObjectSteal(callargs_st); |
8194 | 8204 | assert(PyTuple_CheckExact(callargs)); |
8195 | 8205 | PyObject *kwargs = PyStackRef_IsNull(kwargs_st) ? NULL : PyStackRef_AsPyObjectSteal(kwargs_st); |
|
8342 | 8352 | int positional_args = total_args - (int)PyTuple_GET_SIZE(kwnames_o); |
8343 | 8353 | if (Py_TYPE(callable_o) == &PyFunction_Type && |
8344 | 8354 | !IS_PEP523_HOOKED(tstate) && |
8345 | | - ((PyFunctionObject *)callable_o)->vectorcall == _PyFunction_Vectorcall) |
| 8355 | + FT_ATOMIC_LOAD_PTR_RELAXED( |
| 8356 | + ((PyFunctionObject *)callable_o)->vectorcall) == |
| 8357 | + _PyFunction_Vectorcall) |
8346 | 8358 | { |
8347 | 8359 | int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable_o))->co_flags; |
8348 | 8360 | PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable_o)); |
|
0 commit comments