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(1): make .USEBEFORE handling simpler



details:   https://anonhg.NetBSD.org/src/rev/6514c3befe58
branches:  trunk
changeset: 937604:6514c3befe58
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Aug 22 11:57:18 2020 +0000

description:
make(1): make .USEBEFORE handling simpler

There is no need to duplicate the list of .USEBEFORE commands, just to
destroy that list immediately.  Instead, it's simpler to just prepend
the commands from the .USEBEFORE node to the parent.

diffstat:

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

diffs (42 lines):

diff -r 95b96b765be9 -r 6514c3befe58 usr.bin/make/make.c
--- a/usr.bin/make/make.c       Sat Aug 22 11:53:18 2020 +0000
+++ b/usr.bin/make/make.c       Sat Aug 22 11:57:18 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: make.c,v 1.110 2020/08/22 11:35:00 rillig Exp $        */
+/*     $NetBSD: make.c,v 1.111 2020/08/22 11:57:18 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: make.c,v 1.110 2020/08/22 11:35:00 rillig Exp $";
+static char rcsid[] = "$NetBSD: make.c,v 1.111 2020/08/22 11:57:18 rillig Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)make.c     8.1 (Berkeley) 6/6/93";
 #else
-__RCSID("$NetBSD: make.c,v 1.110 2020/08/22 11:35:00 rillig Exp $");
+__RCSID("$NetBSD: make.c,v 1.111 2020/08/22 11:57:18 rillig Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -443,10 +443,11 @@
                 * .USEBEFORE --
                 *      prepend the child's commands to the parent.
                 */
-               Lst cmds = pgn->commands;
-               pgn->commands = Lst_Duplicate(cgn->commands, NULL);
-               (void)Lst_Concat(pgn->commands, cmds, LST_CONCNEW);
-               Lst_Destroy(cmds, NULL);
+               LstNode node;
+               for (node = Lst_Last(cgn->commands);
+                    node != NULL;
+                    node = Lst_Prev(node))
+                   Lst_AtFront(pgn->commands, Lst_Datum(node));
            } else {
                /*
                 * .USE or target has no commands --



Home | Main Index | Thread Index | Old Index