summaryrefslogtreecommitdiffstats
path: root/generic/tclNamesp.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2006-10-31 13:46:31 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2006-10-31 13:46:31 (GMT)
commit0ca58aa64c618e56ba5a8e06c8030de1737ba015 (patch)
treeed568c862afcaac4c420827a45785a6bdfe7bdbc /generic/tclNamesp.c
parentbdf25bdf70ec1d2f6dddeb07719d5b50ee2a5f91 (diff)
downloadtcl-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.c21
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.
*/