From: Martin v. Löwis Date: Sun, 29 Oct 2000 00:44:43 +0000 (+0000) Subject: Do not release unallocated Tcl objects. Closes #117278 and #117167. X-Git-Tag: v2.1a1~789 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02956017f978f32c17e94279744f49073b995f38;p=thirdparty%2FPython%2Fcpython.git Do not release unallocated Tcl objects. Closes #117278 and #117167. --- diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 528b04871983..86b5c220e319 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -572,13 +572,13 @@ Tkapp_Call(PyObject *self, PyObject *args) objv = objStore; if (args == NULL) - objc = 0; + /* do nothing */; else if (!PyTuple_Check(args)) { - objc = 1; objv[0] = AsObj(args); if (objv[0] == 0) goto finally; + objc = 1; Tcl_IncrRefCount(objv[0]); } else { @@ -588,6 +588,7 @@ Tkapp_Call(PyObject *self, PyObject *args) objv = (Tcl_Obj **)ckalloc(objc * sizeof(char *)); if (objv == NULL) { PyErr_NoMemory(); + objc = 0; goto finally; } } @@ -599,8 +600,12 @@ Tkapp_Call(PyObject *self, PyObject *args) break; } objv[i] = AsObj(v); - if (!objv[i]) + if (!objv[i]) { + /* Reset objc, so it attempts to clear + objects only up to i. */ + objc = i; goto finally; + } Tcl_IncrRefCount(objv[i]); } }