diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2010-08-18 22:33:26 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2010-08-18 22:33:26 (GMT) |
commit | 11924d7e8ed9dbbf906cc088f2f21d9609367336 (patch) | |
tree | b1e603315f93e5798e6c556f68414679d05c4495 /generic/tclInt.h | |
parent | 5e0a6ec0e20184698f7b2b98a7b8a62ef04e2c1a (diff) | |
download | tcl-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.h | 18 |
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; |