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

[PATCH] xdiff: optimise for no whitespace difference when ignoring whitespace.

From
Dylan Reid <dgreid@gmail.com>
Date
Jul 5, 2010, 06:06 UTC
Message-ID
<1278310017-24299-1-git-send-email-dgreid@gmail.com>

Invert the order of the memcmp and flag check are done in xdl_recmatch, as it makes the common case (there is no whitespace difference) faster. It costs the case where lines are the same length and contain whitespace differences, but the common case is more than 20% faster.

Signed-off-by: Dylan Reid <dgreid@gmail.com>
---
 xdiff/xutils.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/xdiff/xutils.c b/xdiff/xutils.c
index bc12f29..dc97a21 100644
--- a/xdiff/xutils.c
+++ b/xdiff/xutils.c
@@ -190,8 +190,10 @@ int xdl_recmatch(const char *l1, long s1, const char *l2, long s2, long flags)
 {
 	int i1, i2;
 
-	if (!(flags & XDF_WHITESPACE_FLAGS))
-		return s1 == s2 && !memcmp(l1, l2, s1);
+	if (s1 == s2 && !memcmp(l1, l2, s1))
+		return 1;
+	else if (!(flags & XDF_WHITESPACE_FLAGS))
+		return 0;
 
 	i1 = 0;
 	i2 = 0;
-- 
1.7.1
Next: Michael J Gruber
Message 1 of 7 in “xdiff: optimise for no whitespace difference when ignoring whitespace.”
  1. xdiff: optimise for no whitespace difference when ignoring whitespace.Dylan Reid, Jul 5, 2010
  2. Michael J GruberJul 5, 2010
  3. Dylan ReidJul 5, 2010
  4. xdiff: optimise for no whitespace difference when ignoring whitespace.Dylan Reid, Jul 5, 2010
  5. Junio C HamanoJul 6, 2010
  6. Dylan ReidJul 6, 2010
  7. xdiff: optimise for no whitespace difference when ignoring whitespace.Dylan Reid, Jul 6, 2010

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.