Module Name: src Committed By: rillig Date: Fri Jan 7 20:09:58 UTC 2022
Modified Files: src/usr.bin/make: for.c nonints.h parse.c Log Message: make: eliminate file-scope variable forLevel No functional change. To generate a diff of this commit: cvs rdiff -u -r1.155 -r1.156 src/usr.bin/make/for.c cvs rdiff -u -r1.230 -r1.231 src/usr.bin/make/nonints.h cvs rdiff -u -r1.628 -r1.629 src/usr.bin/make/parse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/for.c diff -u src/usr.bin/make/for.c:1.155 src/usr.bin/make/for.c:1.156 --- src/usr.bin/make/for.c:1.155 Fri Jan 7 20:04:49 2022 +++ src/usr.bin/make/for.c Fri Jan 7 20:09:58 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: for.c,v 1.155 2022/01/07 20:04:49 rillig Exp $ */ +/* $NetBSD: for.c,v 1.156 2022/01/07 20:09:58 rillig Exp $ */ /* * Copyright (c) 1992, The Regents of the University of California. @@ -58,7 +58,7 @@ #include "make.h" /* "@(#)for.c 8.1 (Berkeley) 6/6/93" */ -MAKE_RCSID("$NetBSD: for.c,v 1.155 2022/01/07 20:04:49 rillig Exp $"); +MAKE_RCSID("$NetBSD: for.c,v 1.156 2022/01/07 20:09:58 rillig Exp $"); typedef struct ForLoop { @@ -70,7 +70,6 @@ typedef struct ForLoop { static ForLoop *accumFor; /* Loop being accumulated */ -static int forLevel = 0; /* Nesting level */ static ForLoop * @@ -224,7 +223,6 @@ For_Eval(const char *line) } accumFor = f; - forLevel = 1; return 1; } @@ -233,7 +231,7 @@ For_Eval(const char *line) * Returns false when the matching .endfor is reached. */ bool -For_Accum(const char *line) +For_Accum(const char *line, int *forLevel) { const char *p = line; @@ -242,12 +240,12 @@ For_Accum(const char *line) cpp_skip_whitespace(&p); if (IsEndfor(p)) { - DEBUG1(FOR, "For: end for %d\n", forLevel); - if (--forLevel <= 0) + DEBUG1(FOR, "For: end for %d\n", *forLevel); + if (--*forLevel <= 0) return false; } else if (IsFor(p)) { - forLevel++; - DEBUG1(FOR, "For: new loop %d\n", forLevel); + (*forLevel)++; + DEBUG1(FOR, "For: new loop %d\n", *forLevel); } } Index: src/usr.bin/make/nonints.h diff -u src/usr.bin/make/nonints.h:1.230 src/usr.bin/make/nonints.h:1.231 --- src/usr.bin/make/nonints.h:1.230 Fri Jan 7 19:24:27 2022 +++ src/usr.bin/make/nonints.h Fri Jan 7 20:09:58 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.230 2022/01/07 19:24:27 rillig Exp $ */ +/* $NetBSD: nonints.h,v 1.231 2022/01/07 20:09:58 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -118,7 +118,7 @@ void SearchPath_Free(SearchPath *); /* for.c */ struct ForLoop; int For_Eval(const char *) MAKE_ATTR_USE; -bool For_Accum(const char *) MAKE_ATTR_USE; +bool For_Accum(const char *, int *) MAKE_ATTR_USE; void For_Run(int); bool For_NextIteration(struct ForLoop *, Buffer *); Index: src/usr.bin/make/parse.c diff -u src/usr.bin/make/parse.c:1.628 src/usr.bin/make/parse.c:1.629 --- src/usr.bin/make/parse.c:1.628 Fri Jan 7 14:03:55 2022 +++ src/usr.bin/make/parse.c Fri Jan 7 20:09:58 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.628 2022/01/07 14:03:55 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.629 2022/01/07 20:09:58 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -106,7 +106,7 @@ #include "pathnames.h" /* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: parse.c,v 1.628 2022/01/07 14:03:55 rillig Exp $"); +MAKE_RCSID("$NetBSD: parse.c,v 1.629 2022/01/07 20:09:58 rillig Exp $"); /* * A file being read. @@ -2559,6 +2559,7 @@ ParseForLoop(const char *line) { int rval; int firstLineno; + int forLevel; rval = For_Eval(line); if (rval == 0) @@ -2570,6 +2571,7 @@ ParseForLoop(const char *line) firstLineno = CurFile()->readLines; /* Accumulate the loop body until the matching '.endfor'. */ + forLevel = 1; do { line = ReadLowLevelLine(LK_FOR_BODY); if (line == NULL) { @@ -2577,7 +2579,7 @@ ParseForLoop(const char *line) "Unexpected end of file in .for loop"); break; } - } while (For_Accum(line)); + } while (For_Accum(line, &forLevel)); For_Run(firstLineno); return true;