diff Modules/_tkinter.c @ 42567:eb2c0676c73f

Use Tcl_SetObjResult instead of Tcl_SetResult.
author Martin v. Löwis <martin@v.loewis.de>
date Mon, 13 Aug 2007 05:41:41 +0000
parents dcf27385f125
children d4ee54a88485
line wrap: on
line diff
--- a/Modules/_tkinter.c	Sun Aug 12 17:23:54 2007 +0000
+++ b/Modules/_tkinter.c	Mon Aug 13 05:41:41 2007 +0000
@@ -1946,9 +1946,9 @@
 PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])
 {
 	PythonCmd_ClientData *data = (PythonCmd_ClientData *)clientData;
-	PyObject *self, *func, *arg, *res, *tmp;
+	PyObject *self, *func, *arg, *res;
 	int i, rv;
-	char *s;
+	Tcl_Obj *tres;
 
 	ENTER_PYTHON
 
@@ -1975,24 +1975,17 @@
 	if (res == NULL)
 		return PythonCmd_Error(interp);
 
-	if (!(tmp = PyList_New(0))) {
+	tres = AsObj(res);
+	if (tres == NULL) {
 		Py_DECREF(res);
 		return PythonCmd_Error(interp);
 	}
-
-	s = AsString(res, tmp);
-	if (s == NULL) {
-		Py_DECREF(res);
-		Py_DECREF(tmp);
-		return PythonCmd_Error(interp);
-	}
 	else {
-		Tcl_SetResult(Tkapp_Interp(self), s, TCL_VOLATILE);
+		Tcl_SetObjResult(Tkapp_Interp(self), tres);
 		rv = TCL_OK;
 	}
 
 	Py_DECREF(res);
-	Py_DECREF(tmp);
 
 	LEAVE_PYTHON