git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] ref-filter: strip format option after a field name only once while parsing

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Oct 2, 2016, 16:35 UTC
Message-ID
<20161002163511.609-1-szeder@ira.uka.de>

When parse_ref_filter_atom() iterates over a list of valid atoms to check that a field name is one of them, it has to strip the optional colon-separated format option suffix that might follow the field name. However, it does so inside the loop, i.e. it performs the exact same stripping over and over again.

Move stripping the format option suffix out of that loop, so it's only performed once for each parsed field name.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
 ref-filter.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/ref-filter.c b/ref-filter.c
index 9adbb8af3eaa..9a8f55e45a16 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -235,7 +235,7 @@ int parse_ref_filter_atom(const char *atom, const char *ep)
 {
 	const char *sp;
 	const char *arg;
-	int i, at;
+	int i, at, atom_len;
 
 	sp = atom;
 	if (*sp == '*' && sp < ep)
@@ -250,19 +250,19 @@ int parse_ref_filter_atom(const char *atom, const char *ep)
 			return i;
 	}
 
+	/*
+	 * If the atom name has a colon, strip it and everything after
+	 * it off - it specifies the format for this entry, and
+	 * shouldn't be used for checking against the valid_atom
+	 * table.
+	 */
+	arg = memchr(sp, ':', ep - sp);
+	atom_len = (arg ? arg : ep) - sp;
+
 	/* Is the atom a valid one? */
 	for (i = 0; i < ARRAY_SIZE(valid_atom); i++) {
 		int len = strlen(valid_atom[i].name);
-
-		/*
-		 * If the atom name has a colon, strip it and everything after
-		 * it off - it specifies the format for this entry, and
-		 * shouldn't be used for checking against the valid_atom
-		 * table.
-		 */
-		arg = memchr(sp, ':', ep - sp);
-		if (len == (arg ? arg : ep) - sp &&
-		    !memcmp(valid_atom[i].name, sp, len))
+		if (len == atom_len && !memcmp(valid_atom[i].name, sp, len))
 			break;
 	}
 
-- 
2.10.0.516.gccda3a9
Message 1 of 1 in “ref-filter: strip format option after a field name only once while parsing”
  1. ref-filter: strip format option after a field name only once while parsingSZEDER Gábor, Oct 2, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.