summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmdsSZ.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-01-25 23:38:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-01-25 23:38:49 (GMT)
commitacb9caa95921a281c8b7f34b030deb1c3049281c (patch)
tree74302fc20666030f2e2cf87268482a29e0695ccb /generic/tclCompCmdsSZ.c
parent342be44f4da2cc09411fd0dc070ddcab26d87355 (diff)
parent03c4df2e30d98d74775a50ee28ce007ae6b41d87 (diff)
downloadtcl-acb9caa95921a281c8b7f34b030deb1c3049281c.zip
tcl-acb9caa95921a281c8b7f34b030deb1c3049281c.tar.gz
tcl-acb9caa95921a281c8b7f34b030deb1c3049281c.tar.bz2
merge novem
Diffstat (limited to 'generic/tclCompCmdsSZ.c')
-rw-r--r--generic/tclCompCmdsSZ.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c
index 7bead0d..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;
}
@@ -2737,7 +2739,7 @@ TclCompileUnsetCmd(
flags = 1;
varTokenPtr = TokenAfter(parsePtr->tokenPtr);
leadingWord = Tcl_NewObj();
- if (TclWordKnownAtCompileTime(varTokenPtr, leadingWord)) {
+ if (numWords > 0 && TclWordKnownAtCompileTime(varTokenPtr, leadingWord)) {
int len;
const char *bytes = Tcl_GetStringFromObj(leadingWord, &len);