@@ -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