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: remove freestanding freeIt variables
details: https://anonhg.NetBSD.org/src/rev/0db651c8be5f
branches: trunk
changeset: 980943:0db651c8be5f
user: rillig <rillig%NetBSD.org@localhost>
date: Mon Feb 22 23:21:33 2021 +0000
description:
make: remove freestanding freeIt variables
These variables all belong to a string variable. Connect them using
FStr, which reduces the number of variables to keep track of.
No functional change.
diffstat:
usr.bin/make/cond.c | 7 +++----
usr.bin/make/meta.c | 18 ++++++++++--------
usr.bin/make/parse.c | 19 +++++++++----------
usr.bin/make/var.c | 33 ++++++++++++++++-----------------
4 files changed, 38 insertions(+), 39 deletions(-)
diffs (211 lines):
diff -r 00ac0081a98c -r 0db651c8be5f usr.bin/make/cond.c
--- a/usr.bin/make/cond.c Mon Feb 22 22:55:43 2021 +0000
+++ b/usr.bin/make/cond.c Mon Feb 22 23:21:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.256 2021/02/05 05:15:12 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.257 2021/02/22 23:21:33 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.256 2021/02/05 05:15:12 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.257 2021/02/22 23:21:33 rillig Exp $");
/*
* The parsing of conditional expressions is based on this grammar:
@@ -440,7 +440,7 @@
}
/*
* XXX: Can there be any situation in which a returned
- * var_Error requires freeIt?
+ * var_Error needs to be freed?
*/
FStr_Done(inout_str);
/*
@@ -473,7 +473,6 @@
* Results:
* Returns the string, absent any quotes, or NULL on error.
* Sets out_quoted if the string was quoted.
- * Sets out_freeIt.
*/
static void
CondParser_String(CondParser *par, Boolean doEval, Boolean strictLHS,
diff -r 00ac0081a98c -r 0db651c8be5f usr.bin/make/meta.c
--- a/usr.bin/make/meta.c Mon Feb 22 22:55:43 2021 +0000
+++ b/usr.bin/make/meta.c Mon Feb 22 23:21:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: meta.c,v 1.177 2021/02/05 19:19:17 sjg Exp $ */
+/* $NetBSD: meta.c,v 1.178 2021/02/22 23:21:33 rillig Exp $ */
/*
* Implement 'meta' mode.
@@ -373,17 +373,19 @@
}
static void
-printCMD(const char *cmd, FILE *fp, GNode *gn)
+printCMD(const char *ucmd, FILE *fp, GNode *gn)
{
- char *cmd_freeIt = NULL;
+ FStr xcmd = FStr_InitRefer(ucmd);
- if (strchr(cmd, '$') != NULL) {
- (void)Var_Subst(cmd, gn, VARE_WANTRES, &cmd_freeIt);
+ if (strchr(ucmd, '$') != NULL) {
+ char *expanded;
+ (void)Var_Subst(ucmd, gn, VARE_WANTRES, &expanded);
/* TODO: handle errors */
- cmd = cmd_freeIt;
+ xcmd = FStr_InitOwn(expanded);
}
- fprintf(fp, "CMD %s\n", cmd);
- free(cmd_freeIt);
+
+ fprintf(fp, "CMD %s\n", xcmd.str);
+ FStr_Done(&xcmd);
}
static void
diff -r 00ac0081a98c -r 0db651c8be5f usr.bin/make/parse.c
--- a/usr.bin/make/parse.c Mon Feb 22 22:55:43 2021 +0000
+++ b/usr.bin/make/parse.c Mon Feb 22 23:21:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.549 2021/02/05 05:46:27 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.550 2021/02/22 23:21:33 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.549 2021/02/05 05:46:27 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.550 2021/02/22 23:21:33 rillig Exp $");
/* types and constants */
@@ -2266,25 +2266,24 @@
static void
SetFilenameVars(const char *filename, const char *dirvar, const char *filevar)
{
- const char *slash, *dirname, *basename;
- void *freeIt;
+ const char *slash, *basename;
+ FStr dirname;
slash = strrchr(filename, '/');
if (slash == NULL) {
- dirname = curdir;
+ dirname = FStr_InitRefer(curdir);
basename = filename;
- freeIt = NULL;
} else {
- dirname = freeIt = bmake_strsedup(filename, slash);
+ dirname = FStr_InitOwn(bmake_strsedup(filename, slash));
basename = slash + 1;
}
- Global_SetExpand(dirvar, dirname);
+ Global_SetExpand(dirvar, dirname.str);
Global_SetExpand(filevar, basename);
DEBUG5(PARSE, "%s: ${%s} = `%s' ${%s} = `%s'\n",
- __func__, dirvar, dirname, filevar, basename);
- free(freeIt);
+ __func__, dirvar, dirname.str, filevar, basename);
+ FStr_Done(&dirname);
}
/*
diff -r 00ac0081a98c -r 0db651c8be5f usr.bin/make/var.c
--- a/usr.bin/make/var.c Mon Feb 22 22:55:43 2021 +0000
+++ b/usr.bin/make/var.c Mon Feb 22 23:21:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.837 2021/02/22 22:55:43 rillig Exp $ */
+/* $NetBSD: var.c,v 1.838 2021/02/22 23:21:33 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -140,7 +140,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.837 2021/02/22 22:55:43 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.838 2021/02/22 23:21:33 rillig Exp $");
typedef enum VarFlags {
VFL_NONE = 0,
@@ -1160,28 +1160,28 @@
void
Var_AppendExpand(GNode *scope, const char *name, const char *val)
{
- char *name_freeIt = NULL;
+ FStr xname = FStr_InitRefer(name);
assert(val != NULL);
if (strchr(name, '$') != NULL) {
- const char *unexpanded_name = name;
- (void)Var_Subst(name, scope, VARE_WANTRES, &name_freeIt);
+ char *expanded;
+ (void)Var_Subst(name, scope, VARE_WANTRES, &expanded);
/* TODO: handle errors */
- name = name_freeIt;
- if (name[0] == '\0') {
+ xname = FStr_InitOwn(expanded);
+ if (expanded[0] == '\0') {
/* TODO: update function name in the debug message */
DEBUG2(VAR, "Var_Append(\"%s\", \"%s\", ...) "
"name expands to empty string - ignored\n",
- unexpanded_name, val);
- free(name_freeIt);
+ name, val);
+ FStr_Done(&xname);
return;
}
}
- Var_Append(scope, name, val);
-
- free(name_freeIt);
+ Var_Append(scope, xname.str, val);
+
+ FStr_Done(&xname);
}
void
@@ -4146,11 +4146,11 @@
/* Free the environment variable now since we own it. */
static void
-FreeEnvVar(void **out_val_freeIt, Var *v, const char *value)
+FreeEnvVar(Var *v, FStr *inout_val)
{
char *varValue = Buf_DoneData(&v->val);
- if (value == varValue)
- *out_val_freeIt = varValue;
+ if (inout_val->str == varValue)
+ inout_val->freeIt = varValue;
else
free(varValue);
@@ -4194,7 +4194,6 @@
* expression into a defined expression.
* XXX: It is not guaranteed that an error message has
* been printed.
- * *out_val_freeIt Must be freed by the caller after using *out_val.
*/
/* coverity[+alloc : arg-*4] */
VarParseResult
@@ -4311,7 +4310,7 @@
*pp = p;
if (v->flags & VFL_FROM_ENV) {
- FreeEnvVar(&expr.value.freeIt, v, expr.value.str);
+ FreeEnvVar(v, &expr.value);
} else if (expr.defined != DEF_REGULAR) {
if (expr.defined == DEF_UNDEF) {
Home |
Main Index |
Thread Index |
Old Index