mirror of https://github.com/python/cpython.git
parent
b723a12c04
commit
584e815114
|
@ -24,6 +24,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Fix refcounting issue with extension types in tkinter.
|
||||
|
||||
- Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error
|
||||
if methods have annotations; it now correctly displays the annotations.
|
||||
|
||||
|
|
|
@ -516,6 +516,7 @@ Tkapp_New(char *screenName, char *className,
|
|||
v = PyObject_New(TkappObject, (PyTypeObject *) Tkapp_Type);
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
Py_INCREF(Tkapp_Type);
|
||||
|
||||
v->interp = Tcl_CreateInterp();
|
||||
v->wantobjects = wantobjects;
|
||||
|
@ -674,6 +675,7 @@ newPyTclObject(Tcl_Obj *arg)
|
|||
self = PyObject_New(PyTclObject, (PyTypeObject *) PyTclObject_Type);
|
||||
if (self == NULL)
|
||||
return NULL;
|
||||
Py_INCREF(PyTclObject_Type);
|
||||
Tcl_IncrRefCount(arg);
|
||||
self->value = arg;
|
||||
self->string = NULL;
|
||||
|
@ -683,9 +685,11 @@ newPyTclObject(Tcl_Obj *arg)
|
|||
static void
|
||||
PyTclObject_dealloc(PyTclObject *self)
|
||||
{
|
||||
PyObject *tp = (PyObject *) Py_TYPE(self);
|
||||
Tcl_DecrRefCount(self->value);
|
||||
Py_XDECREF(self->string);
|
||||
PyObject_Del(self);
|
||||
Py_DECREF(tp);
|
||||
}
|
||||
|
||||
static char*
|
||||
|
@ -2196,6 +2200,7 @@ Tktt_New(PyObject *func)
|
|||
v = PyObject_New(TkttObject, (PyTypeObject *) Tktt_Type);
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
Py_INCREF(Tktt_Type);
|
||||
|
||||
Py_INCREF(func);
|
||||
v->token = NULL;
|
||||
|
@ -2211,10 +2216,12 @@ Tktt_Dealloc(PyObject *self)
|
|||
{
|
||||
TkttObject *v = (TkttObject *)self;
|
||||
PyObject *func = v->func;
|
||||
PyObject *tp = (PyObject *) Py_TYPE(self);
|
||||
|
||||
Py_XDECREF(func);
|
||||
|
||||
PyObject_Del(self);
|
||||
Py_DECREF(tp);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
|
@ -2520,11 +2527,13 @@ static PyMethodDef Tkapp_methods[] =
|
|||
static void
|
||||
Tkapp_Dealloc(PyObject *self)
|
||||
{
|
||||
PyObject *tp = (PyObject *) Py_TYPE(self);
|
||||
/*CHECK_TCL_APPARTMENT;*/
|
||||
ENTER_TCL
|
||||
Tcl_DeleteInterp(Tkapp_Interp(self));
|
||||
LEAVE_TCL
|
||||
PyObject_Del(self);
|
||||
Py_DECREF(tp);
|
||||
DisableEventHook();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue