@@ -2494,15 +2494,23 @@ ComplexExtendsException(PyExc_Exception, AttributeError,
2494
2494
* SyntaxError extends Exception
2495
2495
*/
2496
2496
2497
+ static inline PySyntaxErrorObject *
2498
+ _PySyntaxError_CAST (PyObject * self )
2499
+ {
2500
+ assert (PyObject_TypeCheck (self , (PyTypeObject * )PyExc_SyntaxError ));
2501
+ return (PySyntaxErrorObject * )self ;
2502
+ }
2503
+
2497
2504
static int
2498
- SyntaxError_init (PySyntaxErrorObject * self , PyObject * args , PyObject * kwds )
2505
+ SyntaxError_init (PyObject * op , PyObject * args , PyObject * kwds )
2499
2506
{
2500
2507
PyObject * info = NULL ;
2501
2508
Py_ssize_t lenargs = PyTuple_GET_SIZE (args );
2502
2509
2503
- if (BaseException_init (( PyBaseExceptionObject * ) self , args , kwds ) == -1 )
2510
+ if (BaseException_init (op , args , kwds ) == -1 )
2504
2511
return -1 ;
2505
2512
2513
+ PySyntaxErrorObject * self = _PySyntaxError_CAST (op );
2506
2514
if (lenargs >= 1 ) {
2507
2515
Py_XSETREF (self -> msg , Py_NewRef (PyTuple_GET_ITEM (args , 0 )));
2508
2516
}
@@ -2540,8 +2548,9 @@ SyntaxError_init(PySyntaxErrorObject *self, PyObject *args, PyObject *kwds)
2540
2548
}
2541
2549
2542
2550
static int
2543
- SyntaxError_clear (PySyntaxErrorObject * self )
2551
+ SyntaxError_clear (PyObject * op )
2544
2552
{
2553
+ PySyntaxErrorObject * self = _PySyntaxError_CAST (op );
2545
2554
Py_CLEAR (self -> msg );
2546
2555
Py_CLEAR (self -> filename );
2547
2556
Py_CLEAR (self -> lineno );
@@ -2550,20 +2559,21 @@ SyntaxError_clear(PySyntaxErrorObject *self)
2550
2559
Py_CLEAR (self -> end_offset );
2551
2560
Py_CLEAR (self -> text );
2552
2561
Py_CLEAR (self -> print_file_and_line );
2553
- return BaseException_clear (( PyBaseExceptionObject * ) self );
2562
+ return BaseException_clear (op );
2554
2563
}
2555
2564
2556
2565
static void
2557
- SyntaxError_dealloc (PySyntaxErrorObject * self )
2566
+ SyntaxError_dealloc (PyObject * self )
2558
2567
{
2559
2568
_PyObject_GC_UNTRACK (self );
2560
- SyntaxError_clear (self );
2561
- Py_TYPE (self )-> tp_free (( PyObject * ) self );
2569
+ ( void ) SyntaxError_clear (self );
2570
+ Py_TYPE (self )-> tp_free (self );
2562
2571
}
2563
2572
2564
2573
static int
2565
- SyntaxError_traverse (PySyntaxErrorObject * self , visitproc visit , void * arg )
2574
+ SyntaxError_traverse (PyObject * op , visitproc visit , void * arg )
2566
2575
{
2576
+ PySyntaxErrorObject * self = _PySyntaxError_CAST (op );
2567
2577
Py_VISIT (self -> msg );
2568
2578
Py_VISIT (self -> filename );
2569
2579
Py_VISIT (self -> lineno );
@@ -2572,7 +2582,7 @@ SyntaxError_traverse(PySyntaxErrorObject *self, visitproc visit, void *arg)
2572
2582
Py_VISIT (self -> end_offset );
2573
2583
Py_VISIT (self -> text );
2574
2584
Py_VISIT (self -> print_file_and_line );
2575
- return BaseException_traverse (( PyBaseExceptionObject * ) self , visit , arg );
2585
+ return BaseException_traverse (op , visit , arg );
2576
2586
}
2577
2587
2578
2588
/* This is called "my_basename" instead of just "basename" to avoid name
@@ -2604,8 +2614,9 @@ my_basename(PyObject *name)
2604
2614
2605
2615
2606
2616
static PyObject *
2607
- SyntaxError_str (PySyntaxErrorObject * self )
2617
+ SyntaxError_str (PyObject * op )
2608
2618
{
2619
+ PySyntaxErrorObject * self = _PySyntaxError_CAST (op );
2609
2620
int have_lineno = 0 ;
2610
2621
PyObject * filename ;
2611
2622
PyObject * result ;
0 commit comments