diff options
author | mig <mig> | 2013-01-10 21:18:52 (GMT) |
---|---|---|
committer | mig <mig> | 2013-01-10 21:18:52 (GMT) |
commit | d562dc0f601c1e4871dea0129f2e43bfca1fdb0a (patch) | |
tree | ba9d20a99fce98d2f9273df62edbb14bab9f55d8 /generic/tclCompCmdsSZ.c | |
parent | 9f0eb68928b94f54baa4624b6b6fc6c280263605 (diff) | |
download | tcl-d562dc0f601c1e4871dea0129f2e43bfca1fdb0a.zip tcl-d562dc0f601c1e4871dea0129f2e43bfca1fdb0a.tar.gz tcl-d562dc0f601c1e4871dea0129f2e43bfca1fdb0a.tar.bz2 |
tailcall now running in a simpler model, with no eval-flags and no nre-stack rewriting; yieldto also requires one fewer bounce. Mostly from mig-nre-mods
Diffstat (limited to 'generic/tclCompCmdsSZ.c')
-rw-r--r-- | generic/tclCompCmdsSZ.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 1d04d8b..6e31481 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -1953,11 +1953,13 @@ TclCompileTailcallCmd( return TCL_ERROR; } + /* make room for the nsObjPtr */ + CompileWord(envPtr, tokenPtr, interp, 0); for (i=1 ; i<parsePtr->numWords ; i++) { tokenPtr = TokenAfter(tokenPtr); CompileWord(envPtr, tokenPtr, interp, i); } - TclEmitInstInt1( INST_TAILCALL, parsePtr->numWords-1, envPtr); + TclEmitInstInt1( INST_TAILCALL, parsePtr->numWords, envPtr); return TCL_OK; } |