diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-03-06 21:44:10 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-03-06 21:44:10 (GMT) |
| commit | 0accf68f5a3e5f0d9194c78fe0a151a3787bf887 (patch) | |
| tree | bd06e6e3a95df2855bd5d3c754124092bf3a7fc3 | |
| parent | 6dad029de70b989c7e7a1399538c8a1f0e764482 (diff) | |
| download | tcl-0accf68f5a3e5f0d9194c78fe0a151a3787bf887.zip tcl-0accf68f5a3e5f0d9194c78fe0a151a3787bf887.tar.gz tcl-0accf68f5a3e5f0d9194c78fe0a151a3787bf887.tar.bz2 | |
core review
| -rw-r--r-- | generic/tclBasic.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index f8baf1c..41dbee2 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -4744,12 +4744,15 @@ TEOV_NotFound( (void) TclGetNamespaceForQualName(interp, qualName, currNsPtr, TCL_NAMESPACE_ONLY | TCL_FIND_IF_NOT_SIMPLE, &currNsPtr, &dummyNsPtr, &dummyNsPtr, &simpleName); - while ((currNsPtr == NULL) || (simpleName == NULL) || - currNsPtr->unknownHandlerPtr == NULL || + if ((currNsPtr == NULL) || (simpleName == NULL)) { + goto globNS; + } + while (currNsPtr->unknownHandlerPtr == NULL || (currNsPtr->flags & (NS_DYING | NS_DEAD)) ) { /* traverse to alive parent namespace containing handler */ - if (!currNsPtr || !(currNsPtr = currNsPtr->parentPtr)) { + if (!(currNsPtr = currNsPtr->parentPtr)) { + globNS: /* fallback to the global unknown */ currNsPtr = iPtr->globalNsPtr; if (currNsPtr == NULL) { |
