summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-03-18 08:46:29 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-03-18 08:46:29 (GMT)
commit64fd595e31d8a2a215ca65321c649100a279882d (patch)
tree8be62b99d84bf1e58d80977d5ea639784fd46367 /generic/tclBasic.c
parent41f3a744b019cb440293a8f3216eaf48631fe0ca (diff)
downloadtcl-64fd595e31d8a2a215ca65321c649100a279882d.zip
tcl-64fd595e31d8a2a215ca65321c649100a279882d.tar.gz
tcl-64fd595e31d8a2a215ca65321c649100a279882d.tar.bz2
For now, revert TIP #689 implementation, until it's accepted.
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c51
1 files changed, 4 insertions, 47 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 32472ad..02607a4 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -5183,54 +5183,11 @@ TEOV_NotFound(
* namespace (TIP 181). */
Namespace *savedNsPtr = NULL;
- Tcl_Size qualLen;
- const char *qualName = TclGetStringFromObj(objv[0], &qualLen);
-
currNsPtr = varFramePtr->nsPtr;
- if ((currNsPtr == NULL) || (currNsPtr->unknownHandlerPtr == NULL) ||
- (qualLen > 2 && memchr(qualName, ':', qualLen)) /* fast check for NS:: */
- ) {
- /*
- * first try to find namespace unknown handler of the namespace
- * of executed command if available:
- */
- Namespace *altNsPtr, *dummyNsPtr;
- const char *simpleName;
-
- (void) TclGetNamespaceForQualName(interp, qualName, currNsPtr,
- TCL_FIND_IF_NOT_SIMPLE, &currNsPtr, &altNsPtr,
- &dummyNsPtr, &simpleName);
- if (!simpleName) {
- goto globNS;
- }
- if (!currNsPtr || (currNsPtr == iPtr->globalNsPtr)) {
- if (!altNsPtr || (altNsPtr == iPtr->globalNsPtr)) {
- goto globNS;
- }
- currNsPtr = altNsPtr;
- }
- while (currNsPtr->unknownHandlerPtr == NULL ||
- (currNsPtr->flags & (NS_DYING | NS_DEAD))
- ) {
- /* traverse to alive parent namespace containing handler */
- if (!(currNsPtr = currNsPtr->parentPtr) ||
- (currNsPtr == iPtr->globalNsPtr)
- ) {
- /* continue from alternate NS if available */
- if (!altNsPtr || (altNsPtr == iPtr->globalNsPtr)) {
- goto globNS;
- }
- currNsPtr = altNsPtr;
- altNsPtr = NULL;
- continue;
- globNS:
- /* fallback to the global unknown */
- currNsPtr = iPtr->globalNsPtr;
- if (currNsPtr == NULL) {
- Tcl_Panic("TEOV_NotFound: NULL global namespace pointer");
- }
- break;
- }
+ if ((currNsPtr == NULL) || (currNsPtr->unknownHandlerPtr == NULL)) {
+ currNsPtr = iPtr->globalNsPtr;
+ if (currNsPtr == NULL) {
+ Tcl_Panic("TEOV_NotFound: NULL global namespace pointer");
}
}