[Python-checkins] r59653 - python/trunk/Modules/_tkinter.c
martin.v.loewis
python-checkins at python.org
Tue Jan 1 22:05:17 CET 2008
Author: martin.v.loewis
Date: Tue Jan 1 22:05:17 2008
New Revision: 59653
Modified:
python/trunk/Modules/_tkinter.c
Log:
Return results from Python callbacks to Tcl as Tcl objects.
Fixes Tk issue #1851526
Modified: python/trunk/Modules/_tkinter.c
==============================================================================
--- python/trunk/Modules/_tkinter.c (original)
+++ python/trunk/Modules/_tkinter.c Tue Jan 1 22:05:17 2008
@@ -1992,9 +1992,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 *obj_res;
ENTER_PYTHON
@@ -2021,24 +2021,17 @@
if (res == NULL)
return PythonCmd_Error(interp);
- if (!(tmp = PyList_New(0))) {
+ obj_res = AsObj(res);
+ if (obj_res == 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), obj_res);
rv = TCL_OK;
}
Py_DECREF(res);
- Py_DECREF(tmp);
LEAVE_PYTHON
More information about the Python-checkins
mailing list