Sun Feb 27 06:55:13 2022 UTC ()
lint: remove custom free list for memory blocks

Trust the system memory allocator to do its thing, including marking the
memory as fresh or freed.  One less thing to worry about.


(rillig)
diff -r1.57 -r1.58 src/usr.bin/xlint/lint1/mem1.c

cvs diff -r1.57 -r1.58 src/usr.bin/xlint/lint1/mem1.c (expand / switch to context diff)
--- src/usr.bin/xlint/lint1/mem1.c 2021/12/25 13:51:42 1.57
+++ src/usr.bin/xlint/lint1/mem1.c 2022/02/27 06:55:13 1.58
@@ -1,4 +1,4 @@
-/*	$NetBSD: mem1.c,v 1.57 2021/12/25 13:51:42 rillig Exp $	*/
+/*	$NetBSD: mem1.c,v 1.58 2022/02/27 06:55:13 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: mem1.c,v 1.57 2021/12/25 13:51:42 rillig Exp $");
+__RCSID("$NetBSD: mem1.c,v 1.58 2022/02/27 06:55:13 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -197,9 +197,6 @@
 /* number of elements in *mblks */
 static	size_t	nmblks;
 
-/* free list for memory blocks */
-static	memory_block	*frmblks;
-
 /* length of new allocated memory blocks */
 static	size_t	mblklen;
 
@@ -235,20 +232,16 @@
 
 	s = WORST_ALIGN(s);
 	if ((mb = *mbp) == NULL || mb->nfree < s) {
-		if ((mb = frmblks) == NULL || mb->size < s) {
-			if (s > mblklen) {
-				t = mblklen;
-				mblklen = s;
-			}
-			mb = xnewblk();
+		if (s > mblklen) {
+			t = mblklen;
+			mblklen = s;
+		}
+		mb = xnewblk();
 #ifndef BLKDEBUG
-			(void)memset(mb->start, 0, mb->size);
+		(void)memset(mb->start, 0, mb->size);
 #endif
-			if (t > 0)
-				mblklen = t;
-		} else {
-			frmblks = mb->next;
-		}
+		if (t > 0)
+			mblklen = t;
 		mb->first_free = mb->start;
 		mb->nfree = mb->size;
 		mb->next = *mbp;
@@ -263,10 +256,7 @@
 	return p;
 }
 
-/*
- * Move all blocks from list *fmbp to free list. For each block, set all
- * used memory to zero.
- */
+/* Free all blocks from list *fmbp. */
 static void
 xfreeblk(memory_block **fmbp)
 {
@@ -274,10 +264,7 @@
 
 	while ((mb = *fmbp) != NULL) {
 		*fmbp = mb->next;
-		mb->next = frmblks;
-		frmblks = mb;
-		(void)memset(mb->start, INVALID_MEM_BYTE,
-		    mb->size - mb->nfree);
+		free(mb);
 	}
 }