diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2006-10-31 13:46:31 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2006-10-31 13:46:31 (GMT) |
commit | 0ca58aa64c618e56ba5a8e06c8030de1737ba015 (patch) | |
tree | ed568c862afcaac4c420827a45785a6bdfe7bdbc /generic/tclNamesp.c | |
parent | bdf25bdf70ec1d2f6dddeb07719d5b50ee2a5f91 (diff) | |
download | tcl-0ca58aa64c618e56ba5a8e06c8030de1737ba015.zip tcl-0ca58aa64c618e56ba5a8e06c8030de1737ba015.tar.gz tcl-0ca58aa64c618e56ba5a8e06c8030de1737ba015.tar.bz2 |
Fix [Bug 1587618], eliminating the callObjc and callObjv fields from the Interp
structure.
Diffstat (limited to 'generic/tclNamesp.c')
-rw-r--r-- | generic/tclNamesp.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index 95c348e..fe4a3f8 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -22,7 +22,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclNamesp.c,v 1.111 2006/10/30 14:27:59 dkf Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.112 2006/10/31 13:46:32 dkf Exp $ */ #include "tclInt.h" @@ -423,8 +423,8 @@ Tcl_PushCallFrame( nsPtr->activationCount++; framePtr->nsPtr = nsPtr; framePtr->isProcCallFrame = isProcCallFrame; - framePtr->objc = iPtr->callObjc; - framePtr->objv = iPtr->callObjv; + framePtr->objc = 0; + framePtr->objv = NULL; framePtr->callerPtr = iPtr->framePtr; framePtr->callerVarPtr = iPtr->varFramePtr; if (iPtr->varFramePtr != NULL) { @@ -3433,6 +3433,9 @@ NamespaceEvalCmd( return TCL_ERROR; } + framePtr->objc = objc; + framePtr->objv = objv; + if (objc == 4) { result = Tcl_EvalObjEx(interp, objv[3], 0); } else { @@ -3832,6 +3835,9 @@ NamespaceInscopeCmd( return result; } + framePtr->objc = objc; + framePtr->objv = objv; + /* * Execute the command. If there is just one argument, just treat it as a * script and evaluate it. Otherwise, create a list from the arguments @@ -6296,7 +6302,6 @@ NsEnsembleImplementationCmd( */ if (ensemblePtr->unknownHandler != NULL && reparseCount++ < 1) { - Interp *iPtr = (Interp *) interp; int paramc, i; Tcl_Obj **paramv, *unknownCmd, *ensObj; @@ -6342,14 +6347,6 @@ NsEnsembleImplementationCmd( } /* - * Restore the interp's call data, which may have been wiped out - * while processing the unknown handler. - */ - - iPtr->callObjc = objc; - iPtr->callObjv = objv; - - /* * Namespace alive & empty result => reparse. */ |