summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
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/tclInt.h
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/tclInt.h')
-rw-r--r--generic/tclInt.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 2f18375..881dec4 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -15,7 +15,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclInt.h,v 1.480 2010/08/18 15:44:12 msofer Exp $
+ * RCS: @(#) $Id: tclInt.h,v 1.481 2010/08/18 22:33:27 msofer Exp $
*/
#ifndef _TCLINT
@@ -1152,10 +1152,10 @@ typedef struct CallFrame {
* meaning of the value is, which we do not
* specify. */
LocalCache *localCachePtr;
- struct TEOV_callback *tailcallPtr;
- /* The callback implementing the call to be
- * executed by the command that pushed this
- * frame. */
+ struct TEOV_callback *wherePtr;
+ /* The top of the callback stack when this
+ * frame was pushed; used to find the spot
+ * where to tailcall to. */
} CallFrame;
#define FRAME_IS_PROC 0x1
@@ -1168,6 +1168,8 @@ typedef struct CallFrame {
* field contains an Object reference that has
* been confirmed to refer to a class. Part of
* TIP#257. */
+#define FRAME_TAILCALLING 0x10 /* Flag is set while the CallFrame is winding
+ * down to process a tailcall */
/*
* TIP #280
@@ -2756,10 +2758,8 @@ MODULE_SCOPE Tcl_ObjCmdProc TclNRYieldObjCmd;
MODULE_SCOPE Tcl_ObjCmdProc TclNRYieldmObjCmd;
MODULE_SCOPE Tcl_ObjCmdProc TclNRYieldToObjCmd;
-MODULE_SCOPE void TclClearTailcall(Tcl_Interp *interp,
- struct TEOV_callback *tailcallPtr);
-MODULE_SCOPE void TclSpliceTailcall(Tcl_Interp *interp,
- struct TEOV_callback *tailcallPtr);
+MODULE_SCOPE void TclRemoveTailcall(Tcl_Interp *interp);
+
MODULE_SCOPE Tcl_NRPostProc TclNRBlockTailcall;