Commit 749a0d86 authored by Martin v. Löwis's avatar Martin v. Löwis

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

parent e98062ee
......@@ -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]);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment