summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2010-08-18 22:33:26 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2010-08-18 22:33:26 (GMT)
commit11924d7e8ed9dbbf906cc088f2f21d9609367336 (patch)
treeb1e603315f93e5798e6c556f68414679d05c4495 /generic/tclExecute.c
parent5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a (diff)
downloadtcl-11924d7e8ed9dbbf906cc088f2f21d9609367336.zip
tcl-11924d7e8ed9dbbf906cc088f2f21d9609367336.tar.gz
tcl-11924d7e8ed9dbbf906cc088f2f21d9609367336.tar.bz2
* generic/tclBasic.c: New redesign of [tailcall]: find
* generic/tclExecute.c: errors early on, so that errorInfo * generic/tclInt.h: contains the proper info [Bug 3047235] * generic/tclNamesp.c:
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index c3201a5..715c404 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.490 2010/08/18 15:44:12 msofer Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.491 2010/08/18 22:33:27 msofer Exp $
*/
#include "tclInt.h"
@@ -2905,13 +2905,13 @@ TclExecuteByteCode(
* If the CallFrame is marked as tailcalling, keep tailcalling
*/
- if (iPtr->varFramePtr->tailcallPtr) {
+ if (iPtr->varFramePtr->isProcCallFrame & FRAME_TAILCALLING) {
if (catchTop == initCatchTop) {
goto abnormalReturn;
}
- TclClearTailcall(interp, iPtr->varFramePtr->tailcallPtr);
- iPtr->varFramePtr->tailcallPtr = NULL;
+ iPtr->varFramePtr->isProcCallFrame &= ~FRAME_TAILCALLING;
+ TclRemoveTailcall(interp);
Tcl_SetResult(interp,
"tailcall called from within a catch environment",
TCL_STATIC);