@@ -589,11 +589,10 @@ Tkapp_New(const char *screenName, const char *className,
589589          int  interactive , int  wantobjects , int  wantTk , int  sync ,
590590          const  char  * use )
591591{
592-     PyTypeObject  * type  =  (PyTypeObject  * )Tkapp_Type ;
593592    TkappObject  * v ;
594593    char  * argv0 ;
595594
596-     v  =  (TkappObject   * ) type -> tp_alloc ( type ,  0 );
595+     v  =  PyObject_New (TkappObject , ( PyTypeObject   * )  Tkapp_Type );
597596    if  (v  ==  NULL )
598597        return  NULL ;
599598
@@ -2746,10 +2745,9 @@ _tkinter_tktimertoken_deletetimerhandler_impl(TkttObject *self)
27462745static  TkttObject  * 
27472746Tktt_New (PyObject  * func )
27482747{
2749-     PyTypeObject  * type  =  (PyTypeObject  * )Tktt_Type ;
27502748    TkttObject  * v ;
27512749
2752-     v  =  (TkttObject   * ) type -> tp_alloc ( type ,  0 );
2750+     v  =  PyObject_New (TkttObject , ( PyTypeObject   * )  Tktt_Type );
27532751    if  (v  ==  NULL )
27542752        return  NULL ;
27552753
@@ -2760,31 +2758,17 @@ Tktt_New(PyObject *func)
27602758    return  (TkttObject * )Py_NewRef (v );
27612759}
27622760
2763- static  int 
2764- Tktt_Clear (PyObject  * op )
2765- {
2766-     TkttObject  * self  =  TkttObject_CAST (op );
2767-     Py_CLEAR (self -> func );
2768-     return  0 ;
2769- }
2770- 
27712761static  void 
2772- Tktt_Dealloc (PyObject  * op )
2762+ Tktt_Dealloc (PyObject  * self )
27732763{
2774-     PyTypeObject  * tp  =  Py_TYPE (op );
2775-     PyObject_GC_UnTrack (op );
2776-     (void )Tktt_Clear (op );
2777-     tp -> tp_free (op );
2778-     Py_DECREF (tp );
2779- }
2764+     TkttObject  * v  =  TkttObject_CAST (self );
2765+     PyObject  * func  =  v -> func ;
2766+     PyObject  * tp  =  (PyObject  * ) Py_TYPE (self );
27802767
2781- static  int 
2782- Tktt_Traverse (PyObject  * op , visitproc  visit , void  * arg )
2783- {
2784-     TkttObject  * self  =  TkttObject_CAST (op );
2785-     Py_VISIT (Py_TYPE (op ));
2786-     Py_VISIT (self -> func );
2787-     return  0 ;
2768+     Py_XDECREF (func );
2769+ 
2770+     PyObject_Free (self );
2771+     Py_DECREF (tp );
27882772}
27892773
27902774static  PyObject  * 
@@ -3077,38 +3061,21 @@ _tkinter_tkapp_willdispatch_impl(TkappObject *self)
30773061
30783062/**** Tkapp Type Methods ****/ 
30793063
3080- static  int 
3081- Tkapp_Clear (PyObject  * op )
3082- {
3083-     TkappObject  * self  =  TkappObject_CAST (op );
3084-     Py_CLEAR (self -> trace );
3085-     return  0 ;
3086- }
3087- 
30883064static  void 
30893065Tkapp_Dealloc (PyObject  * op )
30903066{
3091-     PyTypeObject  * tp  =  Py_TYPE (op );
3092-     PyObject_GC_UnTrack (op );
30933067    TkappObject  * self  =  TkappObject_CAST (op );
3068+     PyTypeObject  * tp  =  Py_TYPE (self );
30943069    /*CHECK_TCL_APPARTMENT;*/ 
30953070    ENTER_TCL 
30963071    Tcl_DeleteInterp (Tkapp_Interp (self ));
30973072    LEAVE_TCL 
3098-     ( void ) Tkapp_Clear ( op );
3099-     tp -> tp_free (self );
3073+     Py_XDECREF ( self -> trace );
3074+     PyObject_Free (self );
31003075    Py_DECREF (tp );
31013076    DisableEventHook ();
31023077}
31033078
3104- static  int 
3105- Tkapp_Traverse (PyObject  * op , visitproc  visit , void  * arg )
3106- {
3107-     TkappObject  * self  =  TkappObject_CAST (op );
3108-     Py_VISIT (Py_TYPE (op ));
3109-     Py_VISIT (self -> trace );
3110-     return  0 ;
3111- }
31123079
31133080
31143081/**** Tkinter Module ****/ 
@@ -3296,9 +3263,7 @@ static PyMethodDef Tktt_methods[] =
32963263};
32973264
32983265static  PyType_Slot  Tktt_Type_slots [] =  {
3299-     {Py_tp_clear , Tktt_Clear },
33003266    {Py_tp_dealloc , Tktt_Dealloc },
3301-     {Py_tp_traverse , Tktt_Traverse },
33023267    {Py_tp_repr , Tktt_Repr },
33033268    {Py_tp_methods , Tktt_methods },
33043269    {0 , 0 }
@@ -3311,7 +3276,6 @@ static PyType_Spec Tktt_Type_spec = {
33113276        Py_TPFLAGS_DEFAULT 
33123277        | Py_TPFLAGS_DISALLOW_INSTANTIATION 
33133278        | Py_TPFLAGS_IMMUTABLETYPE 
3314-         | Py_TPFLAGS_HAVE_GC 
33153279    ),
33163280    .slots  =  Tktt_Type_slots ,
33173281};
@@ -3358,9 +3322,7 @@ static PyMethodDef Tkapp_methods[] =
33583322};
33593323
33603324static  PyType_Slot  Tkapp_Type_slots [] =  {
3361-     {Py_tp_clear , Tkapp_Clear },
33623325    {Py_tp_dealloc , Tkapp_Dealloc },
3363-     {Py_tp_traverse , Tkapp_Traverse },
33643326    {Py_tp_methods , Tkapp_methods },
33653327    {0 , 0 }
33663328};
@@ -3373,7 +3335,6 @@ static PyType_Spec Tkapp_Type_spec = {
33733335        Py_TPFLAGS_DEFAULT 
33743336        | Py_TPFLAGS_DISALLOW_INSTANTIATION 
33753337        | Py_TPFLAGS_IMMUTABLETYPE 
3376-         | Py_TPFLAGS_HAVE_GC 
33773338    ),
33783339    .slots  =  Tkapp_Type_slots ,
33793340};
0 commit comments