threads / patch / 42332

patchattr.c: simplify macroexpand_one()

Subject: [PATCH] attr.c: simplify macroexpand_one()

## tl;dr

4 messages between May 15, 2016 and May 16, 2016. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Junio C Hamano· May 15, 2016, 22:57 UTC · lore

The double-loop wants to do an early return immediately when one matching macro is found. Eliminate the extra variable 'a' used for that purpose and rewrite the "assign found itme to 'a' to make it non-NULL and force the loop(s) to terminate" with a direct return from there.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 attr.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
Show changes to attr.c +4 −7
diff --git a/attr.c b/attr.c
index 95416d3..7bfeef3 100644
--- a/attr.c
+++ b/attr.c
@@ -701,24 +701,21 @@ static int fill(const char *path, int pathlen, int basename_offset,
 static int macroexpand_one(int nr, int rem)
 {
 	struct attr_stack *stk;
-	struct match_attr *a = NULL;
 	int i;
 
 	if (check_all_attr[nr].value != ATTR__TRUE ||
 	    !check_all_attr[nr].attr->maybe_macro)
 		return rem;
 
-	for (stk = attr_stack; !a && stk; stk = stk->prev)
-		for (i = stk->num_matches - 1; !a && 0 <= i; i--) {
+	for (stk = attr_stack; stk; stk = stk->prev) {
+		for (i = stk->num_matches - 1; 0 <= i; i--) {
 			struct match_attr *ma = stk->attrs[i];
 			if (!ma->is_macro)
 				continue;
 			if (ma->u.attr->attr_nr == nr)
-				a = ma;
+				return fill_one("expand", ma, rem);
 		}
-
-	if (a)
-		rem = fill_one("expand", a, rem);
+	}
 
 	return rem;
 }
-- 
2.8.2-748-gfb85f76
Eric Sunshine· May 16, 2016, 03:31 UTC · re: Junio C Hamano · lore

Re: [PATCH] attr.c: simplify macroexpand_one()

On Sun, May 15, 2016 at 6:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
> The double-loop wants to do an early return immediately when one
> matching macro is found.  Eliminate the extra variable 'a' used for
> that purpose and rewrite the "assign found itme to 'a' to make it
What's "itme"?
> non-NULL and force the loop(s) to terminate" with a direct return
> from there.
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano· May 16, 2016, 04:41 UTC · re: Eric Sunshine · lore

Re: [PATCH] attr.c: simplify macroexpand_one()

On Sun, May 15, 2016 at 8:31 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 6 quoted lines
> On Sun, May 15, 2016 at 6:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> The double-loop wants to do an early return immediately when one
>> matching macro is found.  Eliminate the extra variable 'a' used for
>> that purpose and rewrite the "assign found itme to 'a' to make it
>
> What's "itme"?
item.
Stefan Beller· May 16, 2016, 16:13 UTC · re: Junio C Hamano · lore

Re: [PATCH] attr.c: simplify macroexpand_one()

On Sun, May 15, 2016 at 9:41 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> On Sun, May 15, 2016 at 8:31 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>> On Sun, May 15, 2016 at 6:57 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>> The double-loop wants to do an early return immediately when one
>>> matching macro is found.  Eliminate the extra variable 'a' used for
>>> that purpose and rewrite the "assign found itme to 'a' to make it
>>
>> What's "itme"?
>
> item.
The code looks good.

Thanks, Stefan

← back to recent threads