Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make: save a hash map lookup when defining a cm...



details:   https://anonhg.NetBSD.org/src/rev/d95710e8a43d
branches:  trunk
changeset: 959713:d95710e8a43d
user:      rillig <rillig%NetBSD.org@localhost>
date:      Mon Feb 22 21:30:33 2021 +0000

description:
make: save a hash map lookup when defining a cmdline variable

This is a preparation to extract the code for exporting a cmdline
variable.  That code differs in several details from the other code in
ExportVar.

No functional change.

diffstat:

 usr.bin/make/var.c |  16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diffs (70 lines):

diff -r 3b4871cbd4c3 -r d95710e8a43d usr.bin/make/var.c
--- a/usr.bin/make/var.c        Mon Feb 22 21:16:25 2021 +0000
+++ b/usr.bin/make/var.c        Mon Feb 22 21:30:33 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: var.c,v 1.832 2021/02/22 21:14:15 rillig Exp $ */
+/*     $NetBSD: var.c,v 1.833 2021/02/22 21:30:33 rillig Exp $ */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -140,7 +140,7 @@
 #include "metachar.h"
 
 /*     "@(#)var.c      8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.832 2021/02/22 21:14:15 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.833 2021/02/22 21:30:33 rillig Exp $");
 
 typedef enum VarFlags {
        VFL_NONE        = 0,
@@ -487,7 +487,7 @@
 }
 
 /* Add a new variable of the given name and value to the given scope. */
-static void
+static Var *
 VarAdd(const char *name, const char *value, GNode *scope, VarSetFlags flags)
 {
        HashEntry *he = HashTable_CreateEntry(&scope->vars, name, NULL);
@@ -495,6 +495,7 @@
            flags & VAR_SET_READONLY ? VFL_READONLY : VFL_NONE);
        HashEntry_Set(he, v);
        DEBUG3(VAR, "%s:%s = %s\n", scope->name, name, value);
+       return v;
 }
 
 /*
@@ -980,7 +981,7 @@
                        /* XXX: name is expanded for the second time */
                        Var_DeleteExpand(SCOPE_GLOBAL, name);
                }
-               VarAdd(name, val, scope, flags);
+               v = VarAdd(name, val, scope, flags);
        } else {
                if ((v->flags & VFL_READONLY) && !(flags & VAR_SET_READONLY)) {
                        DEBUG3(VAR, "%s:%s = %s ignored (read-only)\n",
@@ -994,15 +995,13 @@
                if (v->flags & VFL_EXPORTED)
                        ExportVar(name, VEM_PLAIN);
        }
+
        /*
         * Any variables given on the command line are automatically exported
-        * to the environment (as per POSIX standard)
-        * Other than internals.
+        * to the environment (as per POSIX standard), except for internals.
         */
        if (scope == SCOPE_CMDLINE && !(flags & VAR_SET_NO_EXPORT) &&
            name[0] != '.') {
-               if (v == NULL)
-                       v = VarFind(name, scope, FALSE); /* we just added it */
                v->flags |= VFL_FROM_CMD;
 
                /*
@@ -1016,6 +1015,7 @@
 
                Global_Append(MAKEOVERRIDES, name);
        }
+
        if (name[0] == '.' && strcmp(name, MAKE_SAVE_DOLLARS) == 0)
                save_dollars = ParseBoolean(val, save_dollars);
 



Home | Main Index | Thread Index | Old Index