diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2008-07-21 03:43:26 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2008-07-21 03:43:26 (GMT) |
commit | 456ffc75f24234b21ad5de58e70e33366df2563c (patch) | |
tree | 5143da8d1a32265e2d66e5305ac3a4f2e99fe30e /generic/tclProc.c | |
parent | 2083b945305b771d513727a999ee374dd051f321 (diff) | |
download | tcl-456ffc75f24234b21ad5de58e70e33366df2563c.zip tcl-456ffc75f24234b21ad5de58e70e33366df2563c.tar.gz tcl-456ffc75f24234b21ad5de58e70e33366df2563c.tar.bz2 |
* generic/tclBasic.c: NRE: enabled calling NR commands
* generic/tclExecute.c: from the callbacks. Completely
* generic/tclInt.h: redone tailcall implementation
* generic/tclNRE.h: using the new feature.
* generic/tclProc.c:
* tests/NRE.test:
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r-- | generic/tclProc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c index 187c789..713ee18 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclProc.c,v 1.149 2008/07/19 22:50:41 nijtmans Exp $ + * RCS: @(#) $Id: tclProc.c,v 1.150 2008/07/21 03:43:32 msofer Exp $ */ #include "tclInt.h" @@ -1737,6 +1737,10 @@ TclObjInterpProcCore( if (result == TCL_OK) { result = TclExecuteByteCode(interp, record.data.codePtr); result = TclEvalObjv_NR2(interp, result, rootPtr); + if (TOP_RECORD(iPtr) != rootPtr) { + /* FIXME NRE & tailcalls */ + Tcl_Panic("TclObjInterpProcCore not yet prepared to deal with evals in callbacks!"); + } result = InterpProcNR2(record.callbackPtr->data, interp, result); TclSmallFree(record.callbackPtr); } |