Applied, thank you

On Sat, Apr 6, 2024 at 10:50 AM Ron Yorston <r...@pobox.com> wrote:
>
> dash has accepted a patch to remove the first argument of findvar().
> It's commit e85e972 (var: move hashvar() calls into findvar()).
>
> Apply the same change to BusyBox ash.
>
> function                                             old     new   delta
> findvar                                               35      40      +5
> mklocal                                              268     261      -7
> exportcmd                                            164     157      -7
> setvareq                                             319     310      -9
> lookupvar                                            150     141      -9
> ------------------------------------------------------------------------------
> (add/remove: 0/0 grow/shrink: 1/4 up/down: 5/-32)             Total: -27 bytes
>
> Signed-off-by: Ron Yorston <r...@pobox.com>
> ---
>  shell/ash.c | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/shell/ash.c b/shell/ash.c
> index 4ca4c6c56..8195bfca3 100644
> --- a/shell/ash.c
> +++ b/shell/ash.c
> @@ -2328,9 +2328,11 @@ initvar(void)
>  }
>
>  static struct var **
> -findvar(struct var **vpp, const char *name)
> +findvar(const char *name)
>  {
> -       for (; *vpp; vpp = &(*vpp)->next) {
> +       struct var **vpp;
> +
> +       for (vpp = hashvar(name); *vpp; vpp = &(*vpp)->next) {
>                 if (varcmp((*vpp)->var_text, name) == 0) {
>                         break;
>                 }
> @@ -2346,7 +2348,7 @@ lookupvar(const char *name)
>  {
>         struct var *v;
>
> -       v = *findvar(hashvar(name), name);
> +       v = *findvar(name);
>         if (v) {
>  #if ENABLE_ASH_RANDOM_SUPPORT || BASH_EPOCH_VARS
>         /*
> @@ -2413,9 +2415,8 @@ setvareq(char *s, int flags)
>  {
>         struct var *vp, **vpp;
>
> -       vpp = hashvar(s);
>         flags |= (VEXPORT & (((unsigned) (1 - aflag)) - 1));
> -       vpp = findvar(vpp, s);
> +       vpp = findvar(s);
>         vp = *vpp;
>         if (vp) {
>                 if ((vp->flags & (VREADONLY|VDYNAMIC)) == VREADONLY) {
> @@ -9967,7 +9968,6 @@ static void
>  mklocal(char *name, int flags)
>  {
>         struct localvar *lvp;
> -       struct var **vpp;
>         struct var *vp;
>         char *eq = strchr(name, '=');
>
> @@ -9996,8 +9996,7 @@ mklocal(char *name, int flags)
>                 lvp->text = memcpy(p, optlist, sizeof(optlist));
>                 vp = NULL;
>         } else {
> -               vpp = hashvar(name);
> -               vp = *findvar(vpp, name);
> +               vp = *findvar(name);
>                 if (vp == NULL) {
>                         /* variable did not exist yet */
>                         if (eq)
> @@ -14138,7 +14137,7 @@ exportcmd(int argc UNUSED_PARAM, char **argv)
>                                 if (p != NULL) {
>                                         p++;
>                                 } else {
> -                                       vp = *findvar(hashvar(name), name);
> +                                       vp = *findvar(name);
>                                         if (vp) {
>                                                 vp->flags = ((vp->flags | 
> flag) & flag_off);
>                                                 continue;
> --
> 2.44.0
>
> _______________________________________________
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to