Do not release unallocated Tcl objects. Closes #117278 and #117167.

This commit is contained in:
Martin v. Löwis 2000-10-29 00:44:43 +00:00
parent ebc37b28fa
commit 02956017f9
1 changed files with 8 additions and 3 deletions

View File

@ -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]);
}
}