summaryrefslogtreecommitdiffstats
path: root/Modules/_tkinter.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-08-09 21:42:19 (GMT)
committerGuido van Rossum <guido@python.org>2007-08-09 21:42:19 (GMT)
commit516f41e032e612e5bc6b7093ac31215abbe8f31d (patch)
tree725a182e2e0ae2eeaec74b1e3e9433fbac245119 /Modules/_tkinter.c
parent9ce8e3809906a0e7a01b548883b85d0e323d2f6d (diff)
downloadcpython-516f41e032e612e5bc6b7093ac31215abbe8f31d.zip
cpython-516f41e032e612e5bc6b7093ac31215abbe8f31d.tar.gz
cpython-516f41e032e612e5bc6b7093ac31215abbe8f31d.tar.bz2
Fix some logic in PythonCmd() -- if the AsString() call failed, we'd
be calling LEAVE_PYTHON twice (once in PythonCmd_Error() and once in PythonCmd() itself). This fix doesn't fix the IDLE problems, but at least makes them more debuggable by getting rid of the segfault. Will backport.
Diffstat (limited to 'Modules/_tkinter.c')
-rw-r--r--Modules/_tkinter.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index e9dc72b..df281cd 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1982,7 +1982,9 @@ PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])
s = AsString(res, tmp);
if (s == NULL) {
- rv = PythonCmd_Error(interp);
+ Py_DECREF(res);
+ Py_DECREF(tmp);
+ return PythonCmd_Error(interp);
}
else {
Tcl_SetResult(Tkapp_Interp(self), s, TCL_VOLATILE);