Re: [PATCH] Speedup prefixcmp() common case

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] Speedup prefixcmp() common case

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:01

"Marco Costalba" [off-list ref] writes:
quoted hunk
diff --git a/git-compat-util.h b/git-compat-util.h
index 79eb10e..e26b684 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -398,6 +398,10 @@ static inline int sane_case

 static inline int prefixcmp(const char *str, const char *prefix)
 {
+	// shortcut common case of a single char prefix
+	if (prefix && *(prefix + 1) == '\0' && str)
+		return *str - *prefix;
+
Why isn't it like this?

	if (!prefix[1])
		return *str - *prefix;
 	return strncmp(str, prefix, strlen(prefix));
 }

-- 
1.5.4.rc2-dirty

Re: [PATCH] Speedup prefixcmp() common case

From: Marco Costalba <hidden>
Date: 2016-06-15 22:44:01

On Dec 29, 2007 8:32 PM, Junio C Hamano [off-list ref] wrote:
Why isn't it like this?

        if (!prefix[1])
well, what about if prefix == NULL ?

Actually I didn't checked if strncmp() checks for NULL pointers before
to proceed, if this is the case I managed to keep the same semantic.

You could say "Why, lazy you, didn't you checked if strncmp() checks
for NULL pointers? "...but I hope you are foregiving ;-)

Thanks
Marco
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help