diff options
author | dgp <dgp@users.sourceforge.net> | 2004-10-15 04:01:22 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2004-10-15 04:01:22 (GMT) |
commit | 0eb70513827981212a928f0a5b63afb70c53c960 (patch) | |
tree | a5072bb17646340c040c80672eeba059e8b393f0 /generic/tclExecute.c | |
parent | 2b7d6e025eefe41b48ec7f948602faf2d3bf7055 (diff) | |
download | tcl-0eb70513827981212a928f0a5b63afb70c53c960.zip tcl-0eb70513827981212a928f0a5b63afb70c53c960.tar.gz tcl-0eb70513827981212a928f0a5b63afb70c53c960.tar.bz2 |
* generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp,
TclEvalObjvInternal,Tcl_LogCommandInfo,TclAddObjErrorInfo):
* generic/tclCmdAH.c (Tcl_CatchObjCmd):
* generic/tclEvent.c (BgError,ErrAssocData,Tcl_BackgroundError,
HandleBgErrors,BgErrorDeleteProc):
* generic/tclExecute.c (TclCreateExecEnv,TclDeleteExecEnv):
* generic/tclIOUtil.c (comments only):
* generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS):
* generic/tclInterp.c ([tclInit]):
* generic/tclMain.c (comments only):
* generic/tclNamesp.c
(Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace):
* generic/tclProc.c (TclUpdateReturnInfo):
* generic/tclResult.c
(Tcl_ResetResult,TclTransferResult):
* generic/tclTrace.c (CallVarTraces):
Reworked management of the "errorInfo" data of an interp.
That information is now primarily stored in a new private
(Tcl_Obj *) field of the Interp struct, rather than using a
global variable ::errorInfo as the primary storage. The
ERR_IN_PROGRESS flag bit value is no longer required to manage
the value in its new location, and is removed. Variable traces
are established to support compatibility for any code expecting
the ::errorInfo variable to hold the information.
***POTENTIAL INCOMPATIBILITY***
Code that sets traces on the ::errorInfo variable may notice a
difference in timing of the firing of those traces. Code that
uses the value ERR_IN_PROGRESS.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 60b9344..b59389b 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -11,7 +11,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.156 2004/10/08 15:39:53 dkf Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.157 2004/10/15 04:01:29 dgp Exp $ */ #ifdef STDC_HEADERS @@ -527,12 +527,6 @@ TclCreateExecEnv(interp) eePtr->tosPtr = stackPtr - 1; eePtr->endPtr = stackPtr + (TCL_STACK_INITIAL_SIZE - 2); - eePtr->errorInfo = Tcl_NewStringObj("::errorInfo", -1); - Tcl_IncrRefCount(eePtr->errorInfo); - - eePtr->errorCode = Tcl_NewStringObj("::errorCode", -1); - Tcl_IncrRefCount(eePtr->errorCode); - Tcl_MutexLock(&execMutex); if (!execInitialized) { TclInitAuxDataTypeTable(); @@ -571,8 +565,6 @@ TclDeleteExecEnv(eePtr) } else { Tcl_Panic("ERROR: freeing an execEnv whose stack is still in use.\n"); } - TclDecrRefCount(eePtr->errorInfo); - TclDecrRefCount(eePtr->errorCode); ckfree((char *) eePtr); } @@ -5142,15 +5134,16 @@ ValidatePcAndStackTop(codePtr, pc, stackTop, stackLowerBound, checkStack) * * IllegalExprOperandType -- * - * Used by TclExecuteByteCode to add an error message to errorInfo - * when an illegal operand type is detected by an expression - * instruction. The argument opndPtr holds the operand object in error. + * Used by TclExecuteByteCode to append an error message to + * the interp result when an illegal operand type is detected by an + * expression instruction. The argument opndPtr holds the operand + * object in error. * * Results: * None. * * Side effects: - * An error message is appended to errorInfo. + * An error message is appended to the interp result. * *---------------------------------------------------------------------- */ |