diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/builtin.c | 11 | ||||
-rw-r--r-- | Src/params.c | 6 |
2 files changed, 11 insertions, 6 deletions
diff --git a/Src/builtin.c b/Src/builtin.c index 0be20a5d2..18dfdce05 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2334,7 +2334,8 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func), } else if ((on & PM_LOCAL) && locallevel) { *subscript = 0; pm = (Param) (paramtab == realparamtab ? - gethashnode2(paramtab, pname) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, pname) : paramtab->getnode(paramtab, pname)); *subscript = '['; if (!pm || pm->level != locallevel) { @@ -2825,11 +2826,12 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func) /* Take arguments literally. Don't glob */ while ((asg = getasg(&argv, assigns))) { HashNode hn = (paramtab == realparamtab ? - gethashnode2(paramtab, asg->name) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, asg->name) : paramtab->getnode(paramtab, asg->name)); if (OPT_ISSET(ops,'p')) { if (hn) - printparamnode(hn, printflags); + paramtab->printnode(hn, printflags); else { zwarnnam(name, "no such variable: %s", asg->name); returnval = 1; @@ -3319,7 +3321,8 @@ bin_unset(char *name, char **argv, Options ops, int func) *ss = 0; } pm = (Param) (paramtab == realparamtab ? - gethashnode2(paramtab, s) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, s) : paramtab->getnode(paramtab, s)); /* * Unsetting an unset variable is not an error. diff --git a/Src/params.c b/Src/params.c index de456c144..3ed771e3b 100644 --- a/Src/params.c +++ b/Src/params.c @@ -447,7 +447,7 @@ newparamtable(int size, char const *name) ht->cmpnodes = strcmp; ht->addnode = addhashnode; ht->getnode = getparamnode; - ht->getnode2 = getparamnode; + ht->getnode2 = gethashnode2; ht->removenode = removehashnode; ht->disablenode = NULL; ht->enablenode = NULL; @@ -869,6 +869,7 @@ createparam(char *name, int flags) if (name != nulstring) { oldpm = (Param) (paramtab == realparamtab ? + /* gethashnode2() for direct table read */ gethashnode2(paramtab, name) : paramtab->getnode(paramtab, name)); @@ -3111,7 +3112,8 @@ unsetparam(char *s) queue_signals(); if ((pm = (Param) (paramtab == realparamtab ? - gethashnode2(paramtab, s) : + /* getnode2() to avoid autoloading */ + paramtab->getnode2(paramtab, s) : paramtab->getnode(paramtab, s)))) unsetparam_pm(pm, 0, 1); unqueue_signals(); |