Attachment "try.patch" to
ticket [2688063fff]
added by
ferrieux
2009-03-16 15:45:01.
Index: tclCmdMZ.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclCmdMZ.c,v
retrieving revision 1.181
diff -u -r1.181 tclCmdMZ.c
--- tclCmdMZ.c 9 Mar 2009 09:12:39 -0000 1.181
+++ tclCmdMZ.c 16 Mar 2009 08:41:43 -0000
@@ -4297,7 +4297,7 @@
Tcl_ListObjGetElements(NULL, handlersObj, &numHandlers, &handlers);
for (i=0 ; i<numHandlers ; i++) {
- Tcl_Obj *handlerObj;
+ Tcl_Obj *handlerObj,*handlerBody;
Tcl_ListObjGetElements(NULL, handlers[i], &dummy, &info);
if (!found) {
@@ -4385,10 +4385,11 @@
handlerObj = info[0];
Tcl_IncrRefCount(handlerObj);
- Tcl_DecrRefCount(handlersObj);
+ handlerBody=info[4];
+ Tcl_DecrRefCount(handlersObj); /* info[] may vanish beyond this point */
Tcl_NRAddCallback(interp, TryPostHandler, cmdObj, options,
handlerObj, finallyObj);
- return TclNREvalObjEx(interp, info[4], 0,
+ return TclNREvalObjEx(interp, handlerBody, 0,
((Interp *) interp)->cmdFramePtr, -1);
handlerFailed: