diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tclNamesp.c | 3 | ||||
-rw-r--r-- | generic/tclObj.c | 3 |
3 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2007-07-04 Miguel Sofer <msofer@users.sf.net> + + * 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 <dgp@users.sourceforge.net> * 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)) |