diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2006-10-23 21:36:54 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2006-10-23 21:36:54 (GMT) |
commit | 00a65742087d6d3b1aca1c8153ba4d16b169ee27 (patch) | |
tree | 3333dae28c1795f39b85a6647ffc38ca89c7e9b1 /generic/tclInt.h | |
parent | a45dac076ba36370d50f550d483af81d54f88513 (diff) | |
download | tcl-00a65742087d6d3b1aca1c8153ba4d16b169ee27.zip tcl-00a65742087d6d3b1aca1c8153ba4d16b169ee27.tar.gz tcl-00a65742087d6d3b1aca1c8153ba4d16b169ee27.tar.bz2 |
* generic/tcl.h: Modified the Tcl call stack so
* generic/tclBasic.c: there is always a valid CallFrame, even
* generic/tclCmdIL.c: at level 0 [Patch 1577278]. Most of the
* generic/tclInt.h: changes involve removing tests for
* generic/tclNamesp.c: iPtr->(var)framePtr==NULL. There is now a
* generic/tclObj.c: CallFrame pushed at interp creation
* generic/tclProc.c: with a pointer to it stored in
* generic/tclTrace.c: iPtr->rootFramePtr. A second unused
* generic/tclVar.c: field in Interp is hijacked to enable
further functionality, currently unused (but with several FRQs
depending on it).
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r-- | generic/tclInt.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h index 57912ff..fffcffe 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -12,7 +12,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.281 2006/10/20 15:16:47 dkf Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.282 2006/10/23 21:36:55 msofer Exp $ */ #ifndef _TCLINT @@ -1344,19 +1344,18 @@ typedef struct Interp { * assumes that infinite recursion has * occurred and it generates an error. */ CallFrame *framePtr; /* Points to top-most in stack of all nested - * procedure invocations. NULL means there are - * no active procedures. */ + * procedure invocations. */ CallFrame *varFramePtr; /* Points to the call frame whose variables * are currently in use (same as framePtr - * unless an "uplevel" command is executing). - * NULL means no procedure is active or - * "uplevel 0" is executing. */ + * unless an "uplevel" command is + * executing). */ ActiveVarTrace *activeVarTracePtr; /* First in list of active traces for interp, * or NULL if no active traces. */ int returnCode; /* [return -code] parameter */ - char *unused3; /* No longer used (was errorInfo) */ - char *unused4; /* No longer used (was errorCode) */ + CallFrame *rootFramePtr; /* Global frame pointer for this interpreter */ + Namespace *lookupNsPtr; /* Namespace to use ONLY on the next + * TCL_EVAL_INVOKE call to Tcl_EvalObjv */ /* * Information used by Tcl_AppendResult to keep track of partial results. |