[Python-checkins] python/dist/src/Modules _tkinter.c,1.121.6.2,1.121.6.3
nnorwitz@users.sourceforge.net
nnorwitz@users.sourceforge.net
Thu, 29 May 2003 11:58:25 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv2938/Modules
Modified Files:
Tag: release22-maint
_tkinter.c
Log Message:
Backport 1.160:
Fix SF #745055, Memory leak in _tkinter.c/Tkapp_SplitList()
Also fix a memory leak in Tkapp_Split.
Index: _tkinter.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_tkinter.c,v
retrieving revision 1.121.6.2
retrieving revision 1.121.6.3
diff -C2 -d -r1.121.6.2 -r1.121.6.3
*** _tkinter.c 11 Feb 2003 23:19:35 -0000 1.121.6.2
--- _tkinter.c 29 May 2003 18:58:23 -0000 1.121.6.3
***************
*** 1195,1204 ****
return NULL;
! if (Tcl_SplitList(Tkapp_Interp(self), list, &argc, &argv) == TCL_ERROR)
return Tkinter_Error(self);
if (!(v = PyTuple_New(argc)))
! return NULL;
!
for (i = 0; i < argc; i++) {
PyObject *s = PyString_FromString(argv[i]);
--- 1195,1207 ----
return NULL;
! if (Tcl_SplitList(Tkapp_Interp(self), list,
! &argc, &argv) == TCL_ERROR) {
! PyMem_Free(list);
return Tkinter_Error(self);
+ }
if (!(v = PyTuple_New(argc)))
! goto finally;
!
for (i = 0; i < argc; i++) {
PyObject *s = PyString_FromString(argv[i]);
***************
*** 1212,1215 ****
--- 1215,1219 ----
finally:
ckfree(FREECAST argv);
+ PyMem_Free(list);
return v;
}
***************
*** 1218,1226 ****
Tkapp_Split(PyObject *self, PyObject *args)
{
char *list;
if (!PyArg_ParseTuple(args, "et:split", "utf-8", &list))
return NULL;
! return Split(list);
}
--- 1222,1233 ----
Tkapp_Split(PyObject *self, PyObject *args)
{
+ PyObject *v;
char *list;
if (!PyArg_ParseTuple(args, "et:split", "utf-8", &list))
return NULL;
! v = Split(list);
! PyMem_Free(list);
! return v;
}