diff options
author | msofer <msofer@noemail.net> | 2003-03-19 22:52:47 (GMT) |
---|---|---|
committer | msofer <msofer@noemail.net> | 2003-03-19 22:52:47 (GMT) |
commit | cd033387645961f78265d2f44f7aa205632aebe5 (patch) | |
tree | 5c9d0de7b80f32567b198a8628a7cf5f16dbb901 /generic | |
parent | 608f7cafed85d983116a7ec93bb0d3733f119153 (diff) | |
download | tcl-cd033387645961f78265d2f44f7aa205632aebe5.zip tcl-cd033387645961f78265d2f44f7aa205632aebe5.tar.gz tcl-cd033387645961f78265d2f44f7aa205632aebe5.tar.bz2 |
* generic/tclCompile.c:
* tests/compile.test: bad command count on TCL_OUT_LINE_COMPILE
[Bug 705406] (Don Porter). Backport from 8.5a0
FossilOrigin-Name: dd2df64c62acc146e1bf2bbd2211faf564978806
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclCompile.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 704178b..19f1e25 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCompile.c,v 1.43 2003/02/19 14:33:39 msofer Exp $ + * RCS: @(#) $Id: tclCompile.c,v 1.43.2.1 2003/03/19 22:53:11 msofer Exp $ */ #include "tclInt.h" @@ -989,12 +989,19 @@ TclCompileScript(interp, script, numBytes, nested, envPtr) && (cmdPtr->compileProc != NULL) && !(cmdPtr->flags & CMD_HAS_EXEC_TRACES) && !(iPtr->flags & DONT_COMPILE_CMDS_INLINE)) { + int savedNumCmds = envPtr->numCommands; + code = (*(cmdPtr->compileProc))(interp, &parse, envPtr); if (code == TCL_OK) { goto finishCommand; } else if (code == TCL_OUT_LINE_COMPILE) { - /* do nothing */ + /* + * Restore numCommands to its correct value, removing + * any commands compiled before TCL_OUT_LINE_COMPILE + * [Bug 705406] + */ + envPtr->numCommands = savedNumCmds; } else { /* an error */ /* * There was a compilation error, the last |