From: Guido van Rossum Date: Thu, 9 Aug 2007 21:42:19 +0000 (+0000) Subject: Fix some logic in PythonCmd() -- if the AsString() call failed, we'd X-Git-Tag: v3.0a1~476 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=516f41e032e612e5bc6b7093ac31215abbe8f31d;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index e9dc72bb02a1..df281cdcaec1 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);