diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2010-08-18 15:54:06 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2010-08-18 15:54:06 (GMT) |
commit | 5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a (patch) | |
tree | 06f643e1b0af8689f4abf52d68c64cbc2d038cee /generic/tclCmdMZ.c | |
parent | 096e06e4b8606abecd8fe11c9919df4f35cf4d52 (diff) | |
download | tcl-5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a.zip tcl-5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a.tar.gz tcl-5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a.tar.bz2 |
* generic/tclCmdAH.c (TclNRTryObjCmd): block tailcalling out of
the body of a non-bc'ed [try], #3046594
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r-- | generic/tclCmdMZ.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index 0cb172e..b844dae 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -15,7 +15,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdMZ.c,v 1.212 2010/04/06 08:34:52 dkf Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.213 2010/08/18 15:54:06 msofer Exp $ */ #include "tclInt.h" @@ -4274,11 +4274,13 @@ TclNRTryObjCmd( } /* - * Execute the body. + * Execute the body; block tailcalling out of it. */ Tcl_NRAddCallback(interp, TryPostBody, handlersObj, finallyObj, (ClientData)objv, INT2PTR(objc)); + TclNRAddCallback(interp, TclNRBlockTailcall, NULL, NULL, NULL, + NULL); return TclNREvalObjEx(interp, bodyObj, 0, ((Interp *) interp)->cmdFramePtr, 1); } |