From 56b81839c7271c23ed51776a7a922d3a49fce775 Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Wed, 4 Jul 2007 23:56:57 +0000 Subject: * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being * generic/tclObj.c: cached in a different interp, tkcon [Bug 1747512] --- ChangeLog | 6 ++++++ generic/tclNamesp.c | 3 ++- generic/tclObj.c | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index dc28278..d3c4684 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-07-04 Miguel Sofer + + * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being + * generic/tclObj.c: cached in a different interp, tkcon + [Bug 1747512] + 2007-07-03 Don Porter * generic/tclCompExpr.c: Revised #define values so that there diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index 098b8ba..8e25637 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.143 2007/06/22 20:42:24 dgp Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.144 2007/07/04 23:56:58 msofer Exp $ */ #include "tclInt.h" @@ -2802,6 +2802,7 @@ TclGetNamespaceFromObj( || (resPtr->refNsPtr && (resPtr->refNsPtr != (Namespace *) TclGetCurrentNamespace(interp))) || (nsPtr = resPtr->nsPtr, nsPtr->flags & NS_DEAD) + || (interp != nsPtr->interp) || (resPtr->nsId != nsPtr->nsId)) { result = tclNsNameType.setFromAnyProc(interp, objPtr); diff --git a/generic/tclObj.c b/generic/tclObj.c index 8a43b38..58f1c97 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -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: tclObj.c,v 1.127 2007/06/11 23:00:44 msofer Exp $ + * RCS: @(#) $Id: tclObj.c,v 1.128 2007/07/04 23:56:58 msofer Exp $ */ #include "tclInt.h" @@ -3489,6 +3489,7 @@ Tcl_GetCommandFromObj( if ((objPtr->typePtr != &tclCmdNameType) || (resPtr == NULL) || (cmdPtr = resPtr->cmdPtr, cmdPtr->cmdEpoch != resPtr->cmdEpoch) + || (interp != cmdPtr->nsPtr->interp) || (cmdPtr->flags & CMD_IS_DELETED) || ((resPtr->refNsPtr != NULL) && (((refNsPtr = (Namespace *) TclGetCurrentNamespace(interp)) -- cgit v0.12