diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2008-09-10 13:23:47 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2008-09-10 13:23:47 (GMT) |
commit | b2d9ed24c8428b9c2230515bf13aa76dcfdb607f (patch) | |
tree | 9ae25b29e219c9f6bc5be5c46c47d1f560762124 /generic | |
parent | eb97dfe76d6d46cf1b3c040b8a907305e5300afe (diff) | |
download | tcl-b2d9ed24c8428b9c2230515bf13aa76dcfdb607f.zip tcl-b2d9ed24c8428b9c2230515bf13aa76dcfdb607f.tar.gz tcl-b2d9ed24c8428b9c2230515bf13aa76dcfdb607f.tar.bz2 |
* tests/nre.test: add missing constraints; enable test of foreach
recursion.
* generic/tclBasic.c:
* generic/tclCompile.h:
* generic/tclExecute.c (INST_EVAL_STK): fix for [Bug 2102930],
wrong numLevels when evaling a canonical list.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclBasic.c | 5 | ||||
-rw-r--r-- | generic/tclCompile.h | 3 | ||||
-rw-r--r-- | generic/tclExecute.c | 9 |
3 files changed, 12 insertions, 5 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 68700c8..1f80d43 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -16,7 +16,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclBasic.c,v 1.365 2008/08/26 22:37:02 msofer Exp $ + * RCS: @(#) $Id: tclBasic.c,v 1.366 2008/09/10 13:24:00 msofer Exp $ */ #include "tclInt.h" @@ -134,7 +134,6 @@ static Tcl_NRPostProc TEOV_Error; static Tcl_NRPostProc TEOEx_ListCallback; static Tcl_NRPostProc TEOEx_ByteCodeCallback; -static Tcl_NRPostProc NRCommand; static Tcl_NRPostProc NRRunObjProc; static Tcl_NRPostProc AtProcExitCleanup; @@ -4228,7 +4227,7 @@ TclNRRunCallbacks( return result; } -static int +int NRCommand( ClientData data[], Tcl_Interp *interp, diff --git a/generic/tclCompile.h b/generic/tclCompile.h index c7539ba..ab8eef8 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -9,7 +9,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.h,v 1.106 2008/08/17 19:37:11 msofer Exp $ + * RCS: @(#) $Id: tclCompile.h,v 1.107 2008/09/10 13:24:09 msofer Exp $ */ #ifndef _TCLCOMPILATION @@ -838,6 +838,7 @@ typedef struct { */ MODULE_SCOPE Tcl_NRPostProc NRCallTEBC; +MODULE_SCOPE Tcl_NRPostProc NRCommand; #define TCL_NR_BC_TYPE 0 #define TCL_NR_ATEXIT_TYPE 1 diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 326cc18..ba7bd62 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclExecute.c,v 1.410 2008/09/08 03:55:21 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.411 2008/09/10 13:24:12 msofer Exp $ */ #include "tclInt.h" @@ -2700,6 +2700,13 @@ TclExecuteByteCode( } objc = listRepPtr->elemCount; objv = &listRepPtr->elements; + + /* + * Fix for [Bug 2102930] + */ + + iPtr->numLevels++; + Tcl_NRAddCallback(interp, NRCommand, NULL, NULL, NULL, NULL); goto doInvocationFromEval; } } |