Re: PATCH: avoid problem with deleting nameref features in modules

Philippe Altherr <[email protected]> Tue, 9 Jun 2026 04:55:25 +0200
Newsgroups gmane.comp.shells.zsh.devel
Message-ID <CAGdYchtxe0uSFixhhznWto2Cao-tXA5_T8ASPkZP1PuSpwRDew@mail.gmail.com>
The change in module.c is no longer needed (an equivalent change was done
in 54475: Don't perform dereferencing when looking up certain special
parameters
<https://github.com/zsh-users/zsh/commit/edd6cc82994c6c6741aa32b7bd794128a721f6e4#diff-ce75287427557ce0dcea08304888ce436201514b7f43bb91e30901de55a2c5b1>).
The change in Modules/ksh93.c is still welcome but a little more can be
deleted. Here is an updated patch.

Philippe
simplify-ksh93-cleanup.txt (text/plain, 625 B)
diff --git a/Src/Modules/ksh93.c b/Src/Modules/ksh93.c
index 95a69bc43..f365e5ae2 100644
--- a/Src/Modules/ksh93.c
+++ b/Src/Modules/ksh93.c
@@ -267,18 +267,7 @@ boot_(Module m)
 int
 cleanup_(Module m)
 {
-    struct paramdef *p;
-
     deletewrapper(m, wrapper);
-
-    /* Clean up namerefs, otherwise deleteparamdef() is confused */
-    for (p = partab; p < partab + sizeof(partab)/sizeof(*partab); ++p) {
-	if (p->flags & PM_NAMEREF) {
-	    HashNode hn = gethashnode2(paramtab, p->name);
-	    if (hn)
-		((Param)hn)->node.flags &= ~PM_NAMEREF;
-	}
-    }
     return setfeatureenables(m, &module_features, NULL);
 }