aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_hints.c
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2018-07-10 00:33:31 +0000
committerKyle Evans <kevans@FreeBSD.org>2018-07-10 00:33:31 +0000
commit5768da6c2154a324599b21418586eb04cbd6f1a7 (patch)
tree014a802fc382bfc5edaf3f7160072ee738681c82 /sys/kern/subr_hints.c
parente4098e39caf27f1bbca35178092cc2f7e2ad1890 (diff)
downloadsrc-5768da6c2154a324599b21418586eb04cbd6f1a7.tar.gz
src-5768da6c2154a324599b21418586eb04cbd6f1a7.zip
subr_hints: Use goto/label instead of series of conditionals
Notes
Notes: svn path=/head/; revision=336152
Diffstat (limited to 'sys/kern/subr_hints.c')
-rw-r--r--sys/kern/subr_hints.c48
1 files changed, 22 insertions, 26 deletions
diff --git a/sys/kern/subr_hints.c b/sys/kern/subr_hints.c
index b44020173d9b..17f003cb7f26 100644
--- a/sys/kern/subr_hints.c
+++ b/sys/kern/subr_hints.c
@@ -124,7 +124,7 @@ res_find(char **hintp_cookie, int *line, int *startln,
const char **ret_name, int *ret_namelen, int *ret_unit,
const char **ret_resname, int *ret_resnamelen, const char **ret_value)
{
- int dyn_used = 0, fbacklvl = FBACK_MDENV, hit, i = 0, n = 0;
+ int dyn_used = 0, fbacklvl = FBACK_MDENV, i = 0, n = 0;
char r_name[32];
int r_unit;
char r_resname[32];
@@ -217,34 +217,30 @@ found:
cp = hintp;
while (cp) {
- hit = 1;
(*line)++;
if (strncmp(cp, "hint.", 5) != 0)
- hit = 0;
- else
- n = sscanf(cp, "hint.%32[^.].%d.%32[^=]=%127s",
- r_name, &r_unit, r_resname, r_value);
- /* We'll circumvent all of the checks if we already know */
- if (hit) {
- if (n != 4) {
- printf("CONFIG: invalid hint '%s'\n", cp);
- p = strchr(cp, 'h');
- *p = 'H';
- hit = 0;
- }
- if (hit && startln && *startln >= 0 && *line < *startln)
- hit = 0;
- if (hit && name && strcmp(name, r_name) != 0)
- hit = 0;
- if (hit && unit && *unit != r_unit)
- hit = 0;
- if (hit && resname && strcmp(resname, r_resname) != 0)
- hit = 0;
- if (hit && value && strcmp(value, r_value) != 0)
- hit = 0;
- if (hit)
- break;
+ goto nexthint;
+ n = sscanf(cp, "hint.%32[^.].%d.%32[^=]=%127s", r_name, &r_unit,
+ r_resname, r_value);
+ if (n != 4) {
+ printf("CONFIG: invalid hint '%s'\n", cp);
+ p = strchr(cp, 'h');
+ *p = 'H';
+ goto nexthint;
}
+ if (startln && *startln >= 0 && *line < *startln)
+ goto nexthint;
+ if (name && strcmp(name, r_name) != 0)
+ goto nexthint;
+ if (unit && *unit != r_unit)
+ goto nexthint;
+ if (resname && strcmp(resname, r_resname) != 0)
+ goto nexthint;
+ if (value && strcmp(value, r_value) != 0)
+ goto nexthint;
+ /* Successfully found a hint matching all criteria */
+ break;
+nexthint:
if (dyn_used) {
cp = kenvp[++i];
if (cp == NULL)