Module Name: src Committed By: rillig Date: Sat Aug 22 14:39:12 UTC 2020
Modified Files: src/usr.bin/make: arch.c compat.c dir.c lst.c lst.h make.c parse.c suff.c Log Message: make(1): convert Lst_Enqueue and Lst_Dequeue to nonnull variants Except for once instance in parse.c, the usage pattern for Lst_Dequeue was to first test whether the list is empty. This pattern allowed the implementation of Lst_Dequeue to become simpler since the null check is not needed anymore. The calls to Lst_Enqueue never pass an invalid list or a null pointer, therefore making them strict was trivial. To generate a diff of this commit: cvs rdiff -u -r1.87 -r1.88 src/usr.bin/make/arch.c cvs rdiff -u -r1.122 -r1.123 src/usr.bin/make/compat.c cvs rdiff -u -r1.101 -r1.102 src/usr.bin/make/dir.c cvs rdiff -u -r1.24 -r1.25 src/usr.bin/make/lst.c cvs rdiff -u -r1.30 -r1.31 src/usr.bin/make/lst.h cvs rdiff -u -r1.114 -r1.115 src/usr.bin/make/make.c cvs rdiff -u -r1.255 -r1.256 src/usr.bin/make/parse.c cvs rdiff -u -r1.103 -r1.104 src/usr.bin/make/suff.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/arch.c diff -u src/usr.bin/make/arch.c:1.87 src/usr.bin/make/arch.c:1.88 --- src/usr.bin/make/arch.c:1.87 Sat Aug 22 11:35:00 2020 +++ src/usr.bin/make/arch.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: arch.c,v 1.87 2020/08/22 11:35:00 rillig Exp $ */ +/* $NetBSD: arch.c,v 1.88 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: arch.c,v 1.87 2020/08/22 11:35:00 rillig Exp $"; +static char rcsid[] = "$NetBSD: arch.c,v 1.88 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)arch.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: arch.c,v 1.87 2020/08/22 11:35:00 rillig Exp $"); +__RCSID("$NetBSD: arch.c,v 1.88 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -393,13 +393,12 @@ Arch_ParseArchive(char **linePtr, Lst no free(buf); } else if (Dir_HasWildcards(memName)) { Lst members = Lst_Init(); - char *member; size_t sz = MAXPATHLEN, nsz; nameBuf = bmake_malloc(sz); Dir_Expand(memName, dirSearchPath, members); while (!Lst_IsEmpty(members)) { - member = (char *)Lst_DeQueue(members); + char *member = Lst_DequeueS(members); nsz = strlen(libName) + strlen(member) + 3; if (sz > nsz) nameBuf = bmake_realloc(nameBuf, sz = nsz * 2); Index: src/usr.bin/make/compat.c diff -u src/usr.bin/make/compat.c:1.122 src/usr.bin/make/compat.c:1.123 --- src/usr.bin/make/compat.c:1.122 Sat Aug 22 11:35:00 2020 +++ src/usr.bin/make/compat.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: compat.c,v 1.122 2020/08/22 11:35:00 rillig Exp $ */ +/* $NetBSD: compat.c,v 1.123 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: compat.c,v 1.122 2020/08/22 11:35:00 rillig Exp $"; +static char rcsid[] = "$NetBSD: compat.c,v 1.123 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)compat.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: compat.c,v 1.122 2020/08/22 11:35:00 rillig Exp $"); +__RCSID("$NetBSD: compat.c,v 1.123 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -746,8 +746,8 @@ Compat_Run(Lst targs) * could not be made due to errors. */ errors = 0; - while (!Lst_IsEmpty (targs)) { - gn = (GNode *)Lst_DeQueue(targs); + while (!Lst_IsEmpty(targs)) { + gn = Lst_DequeueS(targs); Compat_Make(gn, gn); if (gn->made == UPTODATE) { Index: src/usr.bin/make/dir.c diff -u src/usr.bin/make/dir.c:1.101 src/usr.bin/make/dir.c:1.102 --- src/usr.bin/make/dir.c:1.101 Sat Aug 22 14:04:22 2020 +++ src/usr.bin/make/dir.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: dir.c,v 1.101 2020/08/22 14:04:22 rillig Exp $ */ +/* $NetBSD: dir.c,v 1.102 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: dir.c,v 1.101 2020/08/22 14:04:22 rillig Exp $"; +static char rcsid[] = "$NetBSD: dir.c,v 1.102 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: dir.c,v 1.101 2020/08/22 14:04:22 rillig Exp $"); +__RCSID("$NetBSD: dir.c,v 1.102 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -1732,9 +1732,8 @@ Dir_Destroy(void *pp) void Dir_ClearPath(Lst path) { - Path *p; while (!Lst_IsEmpty(path)) { - p = (Path *)Lst_DeQueue(path); + Path *p = Lst_DequeueS(path); Dir_Destroy(p); } } Index: src/usr.bin/make/lst.c diff -u src/usr.bin/make/lst.c:1.24 src/usr.bin/make/lst.c:1.25 --- src/usr.bin/make/lst.c:1.24 Sat Aug 22 13:49:40 2020 +++ src/usr.bin/make/lst.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: lst.c,v 1.24 2020/08/22 13:49:40 rillig Exp $ */ +/* $NetBSD: lst.c,v 1.25 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -37,11 +37,11 @@ #include "make.h" #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: lst.c,v 1.24 2020/08/22 13:49:40 rillig Exp $"; +static char rcsid[] = "$NetBSD: lst.c,v 1.25 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: lst.c,v 1.24 2020/08/22 13:49:40 rillig Exp $"); +__RCSID("$NetBSD: lst.c,v 1.25 2020/08/22 14:39:12 rillig Exp $"); #endif /* not lint */ #endif @@ -786,30 +786,23 @@ Lst_CloseS(Lst list) */ /* Add the datum to the tail of the given list. */ -ReturnStatus -Lst_EnQueue(Lst list, void *datum) +void +Lst_EnqueueS(Lst list, void *datum) { - if (!LstIsValid(list)) { - return FAILURE; - } - - return Lst_InsertAfter(list, Lst_Last(list), datum); + Lst_AppendS(list, datum); } -/* Remove and return the datum at the head of the given list, or NULL if the - * list is empty. */ +/* Remove and return the datum at the head of the given list. */ void * -Lst_DeQueue(Lst list) +Lst_DequeueS(Lst list) { - LstNode head; void *datum; - head = Lst_First(list); - if (head == NULL) { - return NULL; - } + assert(LstIsValid(list)); + assert(!LstIsEmpty(list)); - datum = head->datum; - Lst_RemoveS(list, head); + datum = list->first->datum; + Lst_RemoveS(list, list->first); + assert(datum != NULL); return datum; } Index: src/usr.bin/make/lst.h diff -u src/usr.bin/make/lst.h:1.30 src/usr.bin/make/lst.h:1.31 --- src/usr.bin/make/lst.h:1.30 Sat Aug 22 13:28:20 2020 +++ src/usr.bin/make/lst.h Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: lst.h,v 1.30 2020/08/22 13:28:20 rillig Exp $ */ +/* $NetBSD: lst.h,v 1.31 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -180,8 +180,8 @@ void Lst_CloseS(Lst); * for using the list as a queue */ /* Place an element at tail of queue */ -ReturnStatus Lst_EnQueue(Lst, void *); +void Lst_EnqueueS(Lst, void *); /* Remove an element from head of queue */ -void *Lst_DeQueue(Lst); +void *Lst_DequeueS(Lst); #endif /* MAKE_LST_H */ Index: src/usr.bin/make/make.c diff -u src/usr.bin/make/make.c:1.114 src/usr.bin/make/make.c:1.115 --- src/usr.bin/make/make.c:1.114 Sat Aug 22 13:44:17 2020 +++ src/usr.bin/make/make.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: make.c,v 1.114 2020/08/22 13:44:17 rillig Exp $ */ +/* $NetBSD: make.c,v 1.115 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: make.c,v 1.114 2020/08/22 13:44:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: make.c,v 1.115 2020/08/22 14:39:12 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.114 2020/08/22 13:44:17 rillig Exp $"); +__RCSID("$NetBSD: make.c,v 1.115 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -378,7 +378,7 @@ MakeAddChild(void *gnp, void *lp) if (DEBUG(MAKE)) fprintf(debug_file, "MakeAddChild: need to examine %s%s\n", gn->name, gn->cohort_num); - (void)Lst_EnQueue(l, gn); + Lst_EnqueueS(l, gn); } return 0; } @@ -794,7 +794,7 @@ Make_Update(GNode *cgn) } /* Ok, we can schedule the parent again */ pgn->made = REQUESTED; - (void)Lst_EnQueue(toBeMade, pgn); + Lst_EnqueueS(toBeMade, pgn); } Lst_CloseS(parents); } @@ -1050,13 +1050,13 @@ MakeStartJobs(void) GNode *gn; int have_token = 0; - while (!Lst_IsEmpty (toBeMade)) { + while (!Lst_IsEmpty(toBeMade)) { /* Get token now to avoid cycling job-list when we only have 1 token */ if (!have_token && !Job_TokenWithdraw()) break; have_token = 1; - gn = (GNode *)Lst_DeQueue(toBeMade); + gn = Lst_DequeueS(toBeMade); if (DEBUG(MAKE)) fprintf(debug_file, "Examining %s%s...\n", gn->name, gn->cohort_num); @@ -1269,8 +1269,8 @@ Make_ExpandUse(Lst targs) * be looked at in a minute, otherwise we add its children to our queue * and go on about our business. */ - while (!Lst_IsEmpty (examine)) { - gn = (GNode *)Lst_DeQueue(examine); + while (!Lst_IsEmpty(examine)) { + gn = Lst_DequeueS(examine); if (gn->flags & REMAKE) /* We've looked at this one already */ @@ -1405,8 +1405,8 @@ Make_ProcessWait(Lst targs) examine = Lst_Init(); Lst_AppendS(examine, pgn); - while (!Lst_IsEmpty (examine)) { - pgn = Lst_DeQueue(examine); + while (!Lst_IsEmpty(examine)) { + pgn = Lst_DequeueS(examine); /* We only want to process each child-list once */ if (pgn->flags & DONE_WAIT) Index: src/usr.bin/make/parse.c diff -u src/usr.bin/make/parse.c:1.255 src/usr.bin/make/parse.c:1.256 --- src/usr.bin/make/parse.c:1.255 Sat Aug 22 13:44:17 2020 +++ src/usr.bin/make/parse.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.255 2020/08/22 13:44:17 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.256 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: parse.c,v 1.255 2020/08/22 13:44:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: parse.c,v 1.256 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: parse.c,v 1.255 2020/08/22 13:44:17 rillig Exp $"); +__RCSID("$NetBSD: parse.c,v 1.256 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -1447,7 +1447,7 @@ ParseDoDependency(char *line) /* Apply the targets. */ while(!Lst_IsEmpty(curTargs)) { - char *targName = (char *)Lst_DeQueue(curTargs); + char *targName = Lst_DequeueS(curTargs); if (!Suff_IsTransform (targName)) { gn = Targ_FindNode(targName, TARG_CREATE); @@ -1721,8 +1721,8 @@ ParseDoDependency(char *line) goto out; } - while (!Lst_IsEmpty (sources)) { - gn = (GNode *)Lst_DeQueue(sources); + while (!Lst_IsEmpty(sources)) { + gn = Lst_DequeueS(sources); ParseDoSrc(tOp, gn->name); } Lst_Destroy(sources, NULL); @@ -2745,9 +2745,8 @@ ParseEOF(void) free(curFile->P_str); free(curFile); - curFile = Lst_DeQueue(includes); - - if (curFile == NULL) { + if (Lst_IsEmpty(includes)) { + curFile = NULL; /* We've run out of input */ Var_Delete(".PARSEDIR", VAR_GLOBAL); Var_Delete(".PARSEFILE", VAR_GLOBAL); @@ -2756,6 +2755,7 @@ ParseEOF(void) return DONE; } + curFile = Lst_DequeueS(includes); if (DEBUG(PARSE)) fprintf(debug_file, "ParseEOF: returning to file %s, line %d\n", curFile->fname, curFile->lineno); Index: src/usr.bin/make/suff.c diff -u src/usr.bin/make/suff.c:1.103 src/usr.bin/make/suff.c:1.104 --- src/usr.bin/make/suff.c:1.103 Sat Aug 22 13:28:20 2020 +++ src/usr.bin/make/suff.c Sat Aug 22 14:39:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: suff.c,v 1.103 2020/08/22 13:28:20 rillig Exp $ */ +/* $NetBSD: suff.c,v 1.104 2020/08/22 14:39:12 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: suff.c,v 1.103 2020/08/22 13:28:20 rillig Exp $"; +static char rcsid[] = "$NetBSD: suff.c,v 1.104 2020/08/22 14:39:12 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94"; #else -__RCSID("$NetBSD: suff.c,v 1.103 2020/08/22 13:28:20 rillig Exp $"); +__RCSID("$NetBSD: suff.c,v 1.104 2020/08/22 14:39:12 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -1358,7 +1358,7 @@ SuffFindThem(Lst srcs, Lst slst) rs = NULL; while (!Lst_IsEmpty (srcs)) { - s = (Src *)Lst_DeQueue(srcs); + s = Lst_DequeueS(srcs); if (DEBUG(SUFF)) { fprintf(debug_file, "\ttrying %s...", s->file); @@ -1640,7 +1640,7 @@ SuffExpandChildren(LstNode cln, GNode *p * Add all elements of the members list to the parent node. */ while(!Lst_IsEmpty(members)) { - gn = (GNode *)Lst_DeQueue(members); + gn = Lst_DequeueS(members); if (DEBUG(SUFF)) { fprintf(debug_file, "%s...", gn->name); @@ -1693,7 +1693,7 @@ SuffExpandWildcards(LstNode cln, GNode * /* * Fetch next expansion off the list and find its GNode */ - cp = (char *)Lst_DeQueue(explist); + cp = Lst_DequeueS(explist); if (DEBUG(SUFF)) { fprintf(debug_file, "%s...", cp);