Attachment "ens.patch" to
ticket [1670091fff]
added by
dgp
2007-02-27 22:36:10.
Index: generic/tclNamesp.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclNamesp.c,v
retrieving revision 1.125
diff -u -r1.125 tclNamesp.c
--- generic/tclNamesp.c 8 Feb 2007 18:43:40 -0000 1.125
+++ generic/tclNamesp.c 27 Feb 2007 15:32:13 -0000
@@ -6308,8 +6308,9 @@
{
Interp *iPtr = (Interp *) interp;
int isRootEnsemble = (iPtr->ensembleRewrite.sourceObjs == NULL);
+ Tcl_Obj *copyObj = TclListObjCopy(NULL, prefixObj);
- Tcl_ListObjGetElements(NULL, prefixObj, &prefixObjc, &prefixObjv);
+ Tcl_ListObjGetElements(NULL, copyObj, &prefixObjc, &prefixObjv);
if (isRootEnsemble) {
iPtr->ensembleRewrite.sourceObjs = objv;
iPtr->ensembleRewrite.numRemovedObjs = 2;
@@ -6329,6 +6330,7 @@
memcpy(tempObjv+prefixObjc, objv+2, sizeof(Tcl_Obj *) * (objc-2));
result = Tcl_EvalObjv(interp, objc-2+prefixObjc, tempObjv,
TCL_EVAL_INVOKE);
+ Tcl_DecrRefCount(copyObj);
Tcl_DecrRefCount(prefixObj);
TclStackFree(interp);
if (isRootEnsemble) {