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): split Buf_Destroy into Buf_Done and Bu...
details: https://anonhg.NetBSD.org/src/rev/4d3cf0a65180
branches: trunk
changeset: 980279:4d3cf0a65180
user: rillig <rillig%NetBSD.org@localhost>
date: Sat Jan 30 20:53:29 2021 +0000
description:
make(1): split Buf_Destroy into Buf_Done and Buf_DoneData
In all cases except one, the boolean argument to Buf_Destroy was
constant. Removing that argument by splitting the function into two
separate functions makes the intention clearer on the call site. It
also removes the possibility for using the return value of Buf_Done,
which would have made no sense.
The function Buf_Done now pairs with Buf_Init, just as in HashTable and
Lst.
Even though Buf_Done is essentially a no-op, it is kept as a function,
both for symmetry with Buf_Init and for clearing the Buffer members
after use (this will be done only in CLEANUP mode, in a follow-up
commit).
diffstat:
usr.bin/make/buf.c | 35 ++++++++++++++++++++++-------------
usr.bin/make/buf.h | 7 ++++---
usr.bin/make/cond.c | 12 ++++++------
usr.bin/make/dir.c | 6 +++---
usr.bin/make/for.c | 8 ++++----
usr.bin/make/main.c | 8 ++++----
usr.bin/make/parse.c | 6 +++---
usr.bin/make/var.c | 43 +++++++++++++++++++++++--------------------
8 files changed, 69 insertions(+), 56 deletions(-)
diffs (truncated from 433 to 300 lines):
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/buf.c
--- a/usr.bin/make/buf.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/buf.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: buf.c,v 1.47 2020/12/30 10:03:16 rillig Exp $ */
+/* $NetBSD: buf.c,v 1.48 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -75,7 +75,7 @@
#include "make.h"
/* "@(#)buf.c 8.1 (Berkeley) 6/6/93" */
-MAKE_RCSID("$NetBSD: buf.c,v 1.47 2020/12/30 10:03:16 rillig Exp $");
+MAKE_RCSID("$NetBSD: buf.c,v 1.48 2021/01/30 20:53:29 rillig Exp $");
/* Make space in the buffer for adding at least 16 more bytes. */
void
@@ -175,18 +175,27 @@
}
/*
- * Reset the buffer.
- * If freeData is TRUE, the data from the buffer is freed as well.
- * Otherwise it is kept and returned.
+ * Free the data from the buffer.
+ * The buffer is left in an indeterminate state.
+ */
+void
+Buf_Done(Buffer *buf)
+{
+ free(buf->data);
+
+ buf->cap = 0;
+ buf->len = 0;
+ buf->data = NULL;
+}
+
+/*
+ * Return the data from the buffer.
+ * The buffer is left in an indeterminate state.
*/
char *
-Buf_Destroy(Buffer *buf, Boolean freeData)
+Buf_DoneData(Buffer *buf)
{
char *data = buf->data;
- if (freeData) {
- free(data);
- data = NULL;
- }
buf->cap = 0;
buf->len = 0;
@@ -206,16 +215,16 @@
* a new buffer will be allocated and the old one freed.
*/
char *
-Buf_DestroyCompact(Buffer *buf)
+Buf_DoneDataCompact(Buffer *buf)
{
#if BUF_COMPACT_LIMIT > 0
if (buf->cap - buf->len >= BUF_COMPACT_LIMIT) {
/* We trust realloc to be smart */
char *data = bmake_realloc(buf->data, buf->len + 1);
data[buf->len] = '\0'; /* XXX: unnecessary */
- Buf_Destroy(buf, FALSE);
+ Buf_DoneData(buf);
return data;
}
#endif
- return Buf_Destroy(buf, FALSE);
+ return Buf_DoneData(buf);
}
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/buf.h
--- a/usr.bin/make/buf.h Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/buf.h Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: buf.h,v 1.38 2020/12/28 15:42:53 rillig Exp $ */
+/* $NetBSD: buf.h,v 1.39 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -126,7 +126,8 @@
void Buf_Empty(Buffer *);
void Buf_Init(Buffer *);
void Buf_InitSize(Buffer *, size_t);
-char *Buf_Destroy(Buffer *, Boolean);
-char *Buf_DestroyCompact(Buffer *);
+void Buf_Done(Buffer *);
+char *Buf_DoneData(Buffer *);
+char *Buf_DoneDataCompact(Buffer *);
#endif /* MAKE_BUF_H */
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/cond.c
--- a/usr.bin/make/cond.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/cond.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.253 2021/01/22 00:12:01 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.254 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -95,7 +95,7 @@
#include "dir.h"
/* "@(#)cond.c 8.2 (Berkeley) 1/2/94" */
-MAKE_RCSID("$NetBSD: cond.c,v 1.253 2021/01/22 00:12:01 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.254 2021/01/30 20:53:29 rillig Exp $");
/*
* The parsing of conditional expressions is based on this grammar:
@@ -282,8 +282,8 @@
p++;
}
- *out_arg = Buf_GetAll(&argBuf, &argLen);
- Buf_Destroy(&argBuf, FALSE);
+ argLen = argBuf.len;
+ *out_arg = Buf_DoneData(&argBuf);
cpp_skip_hspace(&p);
@@ -539,9 +539,9 @@
}
}
got_str:
- str = FStr_InitOwn(Buf_GetAll(&buf, NULL));
+ str = FStr_InitOwn(buf.data);
cleanup:
- Buf_Destroy(&buf, FALSE);
+ Buf_DoneData(&buf);
*out_str = str;
}
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/dir.c
--- a/usr.bin/make/dir.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/dir.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dir.c,v 1.264 2021/01/24 20:11:55 rillig Exp $ */
+/* $NetBSD: dir.c,v 1.265 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -138,7 +138,7 @@
#include "job.h"
/* "@(#)dir.c 8.2 (Berkeley) 1/2/94" */
-MAKE_RCSID("$NetBSD: dir.c,v 1.264 2021/01/24 20:11:55 rillig Exp $");
+MAKE_RCSID("$NetBSD: dir.c,v 1.265 2021/01/30 20:53:29 rillig Exp $");
/*
* A search path is a list of CachedDir structures. A CachedDir has in it the
@@ -1645,7 +1645,7 @@
}
}
- return Buf_Destroy(&buf, FALSE);
+ return Buf_DoneData(&buf);
}
/* Free the search path and all directories mentioned in it. */
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/for.c
--- a/usr.bin/make/for.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/for.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: for.c,v 1.138 2021/01/25 19:39:34 rillig Exp $ */
+/* $NetBSD: for.c,v 1.139 2021/01/30 20:53:29 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.138 2021/01/25 19:39:34 rillig Exp $");
+MAKE_RCSID("$NetBSD: for.c,v 1.139 2021/01/30 20:53:29 rillig Exp $");
/* One of the variables to the left of the "in" in a .for loop. */
@@ -103,7 +103,7 @@
static void
ForLoop_Free(ForLoop *f)
{
- Buf_Destroy(&f->body, TRUE);
+ Buf_Done(&f->body);
while (f->vars.len > 0) {
ForVar *var = Vector_Pop(&f->vars);
@@ -112,7 +112,7 @@
Vector_Done(&f->vars);
Words_Free(f->items);
- Buf_Destroy(&f->curBody, TRUE);
+ Buf_Done(&f->curBody);
free(f);
}
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/main.c
--- a/usr.bin/make/main.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/main.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.517 2021/01/24 20:11:55 rillig Exp $ */
+/* $NetBSD: main.c,v 1.518 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -110,7 +110,7 @@
#include "trace.h"
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: main.c,v 1.517 2021/01/24 20:11:55 rillig Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.518 2021/01/30 20:53:29 rillig Exp $");
#if defined(MAKE_NATIVE) && !defined(lint)
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
"The Regents of the University of California. "
@@ -1841,7 +1841,7 @@
JobReapChild(pid, status, FALSE);
res_len = Buf_Len(&buf);
- res = Buf_Destroy(&buf, FALSE);
+ res = Buf_DoneData(&buf);
if (savederr != 0)
*errfmt = "Couldn't read shell's output for \"%s\"";
@@ -2027,7 +2027,7 @@
write_all(STDERR_FILENO, Buf_GetAll(&buf, NULL), Buf_Len(&buf));
- Buf_Destroy(&buf, TRUE);
+ Buf_Done(&buf);
_exit(1);
}
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/parse.c
--- a/usr.bin/make/parse.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/parse.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.533 2021/01/27 00:02:38 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.534 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -109,7 +109,7 @@
#include "pathnames.h"
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.533 2021/01/27 00:02:38 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.534 2021/01/30 20:53:29 rillig Exp $");
/* types and constants */
@@ -455,7 +455,7 @@
{
struct loadedfile *lf = loadedfile_create(path,
buf.data, buf.len);
- Buf_Destroy(&buf, FALSE);
+ Buf_DoneData(&buf);
return lf;
}
}
diff -r da5a4d7e9e85 -r 4d3cf0a65180 usr.bin/make/var.c
--- a/usr.bin/make/var.c Sat Jan 30 19:20:44 2021 +0000
+++ b/usr.bin/make/var.c Sat Jan 30 20:53:29 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.783 2021/01/30 15:48:42 rillig Exp $ */
+/* $NetBSD: var.c,v 1.784 2021/01/30 20:53:29 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -131,7 +131,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.783 2021/01/30 15:48:42 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.784 2021/01/30 20:53:29 rillig Exp $");
typedef enum VarFlags {
VAR_NONE = 0,
@@ -456,7 +456,10 @@
return FALSE;
FStr_Done(&v->name);
- Buf_Destroy(&v->val, freeValue);
+ if (freeValue)
+ Buf_Done(&v->val);
+ else
+ Buf_DoneData(&v->val);
free(v);
return TRUE;
}
@@ -499,7 +502,7 @@
var_exportedVars = VAR_EXPORTED_NONE;
assert(v->name.freeIt == NULL);
HashTable_DeleteEntry(&ctxt->vars, he);
- Buf_Destroy(&v->val, TRUE);
+ Buf_Done(&v->val);
free(v);
}
Home |
Main Index |
Thread Index |
Old Index