diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2009-12-10 23:52:30 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2009-12-10 23:52:30 (GMT) |
commit | e225192e11ee22d35470bef993063ace4970231b (patch) | |
tree | 61bbed44f7eba044e2ef57f91291e166fd7be2b7 /generic/tclExecute.c | |
parent | 6702229811b97786ff7f9e400992cdcdd4d7b56e (diff) | |
download | tcl-e225192e11ee22d35470bef993063ace4970231b.zip tcl-e225192e11ee22d35470bef993063ace4970231b.tar.gz tcl-e225192e11ee22d35470bef993063ace4970231b.tar.bz2 |
* generic/tclBasic.c: Full nre-enabling of coroutines
* generic/tclExecute.c: [Bug 2806407]
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index e2ef7e4..f4a204e 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.461 2009/12/10 22:01:48 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.462 2009/12/10 23:52:30 msofer Exp $ */ #include "tclInt.h" @@ -2039,8 +2039,9 @@ TclExecuteByteCode( */ corPtr->base.cmdFramePtr = bcFramePtr; - BP->prevBottomPtr = NULL; iPtr->varFramePtr = iPtr->rootFramePtr; + corPtr->callerBP = BP->prevBottomPtr; + BP->prevBottomPtr = NULL; } if (!corPtr->stackLevel) { @@ -2832,13 +2833,12 @@ TclExecuteByteCode( * new one. */ - if (param) { - codePtr = param; + codePtr = param; + if (codePtr) { goto nonRecursiveCallStart; } else { CoroutineData *corPtr = iPtr->execEnvPtr->corPtr; - codePtr = NULL; corPtr->callerBP = BP; goto resumeCoroutine; } |