@@ -18,6 +18,8 @@ typedef struct _PyLegacyEventHandler {
1818 int event ;
1919} _PyLegacyEventHandler ;
2020
21+ #define _PyLegacyEventHandler_CAST (op ) ((_PyLegacyEventHandler *)(op))
22+
2123#ifdef Py_GIL_DISABLED
2224#define LOCK_SETUP () PyMutex_Lock(&_PyRuntime.ceval.sys_trace_profile_mutex);
2325#define UNLOCK_SETUP () PyMutex_Unlock(&_PyRuntime.ceval.sys_trace_profile_mutex);
@@ -56,49 +58,54 @@ call_profile_func(_PyLegacyEventHandler *self, PyObject *arg)
5658
5759static PyObject *
5860sys_profile_start (
59- _PyLegacyEventHandler * self , PyObject * const * args ,
61+ PyObject * callable , PyObject * const * args ,
6062 size_t nargsf , PyObject * kwnames
6163) {
64+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST (callable );
6265 assert (kwnames == NULL );
6366 assert (PyVectorcall_NARGS (nargsf ) == 2 );
6467 return call_profile_func (self , Py_None );
6568}
6669
6770static PyObject *
6871sys_profile_throw (
69- _PyLegacyEventHandler * self , PyObject * const * args ,
72+ PyObject * callable , PyObject * const * args ,
7073 size_t nargsf , PyObject * kwnames
7174) {
75+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST (callable );
7276 assert (kwnames == NULL );
7377 assert (PyVectorcall_NARGS (nargsf ) == 3 );
7478 return call_profile_func (self , Py_None );
7579}
7680
7781static PyObject *
7882sys_profile_return (
79- _PyLegacyEventHandler * self , PyObject * const * args ,
83+ PyObject * callable , PyObject * const * args ,
8084 size_t nargsf , PyObject * kwnames
8185) {
86+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST (callable );
8287 assert (kwnames == NULL );
8388 assert (PyVectorcall_NARGS (nargsf ) == 3 );
8489 return call_profile_func (self , args [2 ]);
8590}
8691
8792static PyObject *
8893sys_profile_unwind (
89- _PyLegacyEventHandler * self , PyObject * const * args ,
94+ PyObject * callable , PyObject * const * args ,
9095 size_t nargsf , PyObject * kwnames
9196) {
97+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST (callable );
9298 assert (kwnames == NULL );
9399 assert (PyVectorcall_NARGS (nargsf ) == 3 );
94- return call_profile_func (self , NULL );
100+ return call_profile_func (self , NULL );
95101}
96102
97103static PyObject *
98104sys_profile_call_or_return (
99- _PyLegacyEventHandler * self , PyObject * const * args ,
105+ PyObject * op , PyObject * const * args ,
100106 size_t nargsf , PyObject * kwnames
101107) {
108+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST (op );
102109 assert (kwnames == NULL );
103110 assert (PyVectorcall_NARGS (nargsf ) == 4 );
104111 PyObject * callable = args [2 ];
@@ -188,7 +195,7 @@ sys_trace_exception_func(
188195 PyObject * callable , PyObject * const * args ,
189196 size_t nargsf , PyObject * kwnames
190197) {
191- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
198+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
192199 assert (kwnames == NULL );
193200 assert (PyVectorcall_NARGS (nargsf ) == 3 );
194201 PyObject * exc = args [2 ];
@@ -213,7 +220,7 @@ sys_trace_start(
213220 PyObject * callable , PyObject * const * args ,
214221 size_t nargsf , PyObject * kwnames
215222) {
216- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
223+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
217224 assert (kwnames == NULL );
218225 assert (PyVectorcall_NARGS (nargsf ) == 2 );
219226 return call_trace_func (self , Py_None );
@@ -224,7 +231,7 @@ sys_trace_throw(
224231 PyObject * callable , PyObject * const * args ,
225232 size_t nargsf , PyObject * kwnames
226233) {
227- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
234+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
228235 assert (kwnames == NULL );
229236 assert (PyVectorcall_NARGS (nargsf ) == 3 );
230237 return call_trace_func (self , Py_None );
@@ -235,7 +242,7 @@ sys_trace_unwind(
235242 PyObject * callable , PyObject * const * args ,
236243 size_t nargsf , PyObject * kwnames
237244) {
238- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
245+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
239246 assert (kwnames == NULL );
240247 assert (PyVectorcall_NARGS (nargsf ) == 3 );
241248 return call_trace_func (self , NULL );
@@ -246,7 +253,7 @@ sys_trace_return(
246253 PyObject * callable , PyObject * const * args ,
247254 size_t nargsf , PyObject * kwnames
248255) {
249- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
256+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
250257 assert (!PyErr_Occurred ());
251258 assert (kwnames == NULL );
252259 assert (PyVectorcall_NARGS (nargsf ) == 3 );
@@ -261,7 +268,7 @@ sys_trace_yield(
261268 PyObject * callable , PyObject * const * args ,
262269 size_t nargsf , PyObject * kwnames
263270) {
264- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
271+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
265272 assert (kwnames == NULL );
266273 assert (PyVectorcall_NARGS (nargsf ) == 3 );
267274 return call_trace_func (self , args [2 ]);
@@ -272,7 +279,7 @@ sys_trace_instruction_func(
272279 PyObject * callable , PyObject * const * args ,
273280 size_t nargsf , PyObject * kwnames
274281) {
275- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
282+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
276283 assert (kwnames == NULL );
277284 assert (PyVectorcall_NARGS (nargsf ) == 2 );
278285 PyFrameObject * frame = PyEval_GetFrame ();
@@ -325,7 +332,7 @@ sys_trace_line_func(
325332 PyObject * callable , PyObject * const * args ,
326333 size_t nargsf , PyObject * kwnames
327334) {
328- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
335+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
329336 assert (kwnames == NULL );
330337 PyThreadState * tstate = _PyThreadState_GET ();
331338 if (tstate -> c_tracefunc == NULL ) {
@@ -352,7 +359,7 @@ sys_trace_jump_func(
352359 PyObject * callable , PyObject * const * args ,
353360 size_t nargsf , PyObject * kwnames
354361) {
355- _PyLegacyEventHandler * self = ( _PyLegacyEventHandler * ) callable ;
362+ _PyLegacyEventHandler * self = _PyLegacyEventHandler_CAST ( callable ) ;
356363 assert (kwnames == NULL );
357364 PyThreadState * tstate = _PyThreadState_GET ();
358365 if (tstate -> c_tracefunc == NULL ) {
@@ -439,38 +446,40 @@ setup_profile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg, PyObject
439446 if (!tstate -> interp -> sys_profile_initialized ) {
440447 tstate -> interp -> sys_profile_initialized = true;
441448 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
442- (vectorcallfunc )sys_profile_start , PyTrace_CALL ,
443- PY_MONITORING_EVENT_PY_START , PY_MONITORING_EVENT_PY_RESUME )) {
449+ sys_profile_start , PyTrace_CALL ,
450+ PY_MONITORING_EVENT_PY_START ,
451+ PY_MONITORING_EVENT_PY_RESUME )) {
444452 return -1 ;
445453 }
446454 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
447- ( vectorcallfunc ) sys_profile_throw , PyTrace_CALL ,
448- PY_MONITORING_EVENT_PY_THROW , -1 )) {
455+ sys_profile_throw , PyTrace_CALL ,
456+ PY_MONITORING_EVENT_PY_THROW , -1 )) {
449457 return -1 ;
450458 }
451459 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
452- (vectorcallfunc )sys_profile_return , PyTrace_RETURN ,
453- PY_MONITORING_EVENT_PY_RETURN , PY_MONITORING_EVENT_PY_YIELD )) {
460+ sys_profile_return , PyTrace_RETURN ,
461+ PY_MONITORING_EVENT_PY_RETURN ,
462+ PY_MONITORING_EVENT_PY_YIELD )) {
454463 return -1 ;
455464 }
456465 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
457- ( vectorcallfunc ) sys_profile_unwind , PyTrace_RETURN ,
458- PY_MONITORING_EVENT_PY_UNWIND , -1 )) {
466+ sys_profile_unwind , PyTrace_RETURN ,
467+ PY_MONITORING_EVENT_PY_UNWIND , -1 )) {
459468 return -1 ;
460469 }
461470 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
462- ( vectorcallfunc ) sys_profile_call_or_return , PyTrace_C_CALL ,
463- PY_MONITORING_EVENT_CALL , -1 )) {
471+ sys_profile_call_or_return , PyTrace_C_CALL ,
472+ PY_MONITORING_EVENT_CALL , -1 )) {
464473 return -1 ;
465474 }
466475 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
467- ( vectorcallfunc ) sys_profile_call_or_return , PyTrace_C_RETURN ,
468- PY_MONITORING_EVENT_C_RETURN , -1 )) {
476+ sys_profile_call_or_return , PyTrace_C_RETURN ,
477+ PY_MONITORING_EVENT_C_RETURN , -1 )) {
469478 return -1 ;
470479 }
471480 if (set_callbacks (PY_MONITORING_SYS_PROFILE_ID ,
472- ( vectorcallfunc ) sys_profile_call_or_return , PyTrace_C_EXCEPTION ,
473- PY_MONITORING_EVENT_C_RAISE , -1 )) {
481+ sys_profile_call_or_return , PyTrace_C_EXCEPTION ,
482+ PY_MONITORING_EVENT_C_RAISE , -1 )) {
474483 return -1 ;
475484 }
476485 }
0 commit comments