summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclNamesp.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index c369ccf..89dfbab 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -21,7 +21,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.38 2004/05/23 22:53:20 msofer Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.39 2004/05/23 22:58:23 msofer Exp $
*/
#include "tclInt.h"
@@ -2326,16 +2326,13 @@ Tcl_FindNamespaceVar(interp, name, contextNsPtr, flags)
varPtr = (Var *) Tcl_GetHashValue(entryPtr);
/* Fix for [Bug 959052].
- * When a varName is looked from a namespace different from the
- * global one, there is no corresponding variable in the namespace and
- * there is a "zombie" variable in the global namespace (ie, the
- * varName is in the hash table, but the variable is unset), this code
- * returns a reference to the zombie. Except when the zombie was
- * created by a [variable] call, it should instead create a
- * variable in the namespace.
- * In particular, zombies created by [trace], [upvar], [global] or
- * a reference in a tclNsVarNameType obj should never be found.
+ * We might have found a "zombie" variable: it is in the hash
+ * table, but the variable is unset and it was not fixed with
+ * a call to [variable]. In particular, zombies created by
+ * [trace], [upvar], [global] or a reference in a
+ * tclNsVarNameType obj should never be found.
*/
+
if (TclIsVarUndefined(varPtr)
&& !(varPtr->flags & VAR_NAMESPACE_VAR)
&& !(flags & (TCL_GLOBAL_ONLY|TCL_NAMESPACE_ONLY))) {