You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/05/23 01:10:37 UTC
svn commit: r1485488 - /subversion/trunk/subversion/libsvn_diff/diff_file.c
Author: stefan2
Date: Wed May 22 23:10:37 2013
New Revision: 1485488
URL: http://svn.apache.org/r1485488
Log:
Minor optimization in diff code: stop comparing data once we found a mismatch.
Further iterations won't change the result.
* subversion/libsvn_diff/diff_file.c
(find_identical_suffix): exit the loops as soon as CAN_READ_WORD or IS_MATCH
are FALSE
Modified:
subversion/trunk/subversion/libsvn_diff/diff_file.c
Modified: subversion/trunk/subversion/libsvn_diff/diff_file.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/diff_file.c?rev=1485488&r1=1485487&r2=1485488&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/diff_file.c (original)
+++ subversion/trunk/subversion/libsvn_diff/diff_file.c Wed May 22 23:10:37 2013
@@ -634,7 +634,7 @@ find_identical_suffix(apr_off_t *suffix_
min_curp[0] += suffix_min_offset0;
/* Scan quickly by reading with machine-word granularity. */
- for (i = 0, can_read_word = TRUE; i < file_len; i++)
+ for (i = 0, can_read_word = TRUE; can_read_word && i < file_len; i++)
can_read_word = can_read_word
&& ( (file_for_suffix[i].curp + 1
- sizeof(apr_uintptr_t))
@@ -652,7 +652,7 @@ find_identical_suffix(apr_off_t *suffix_
if (contains_eol(chunk))
break;
- for (i = 1, is_match = TRUE; i < file_len; i++)
+ for (i = 1, is_match = TRUE; is_match && i < file_len; i++)
is_match = is_match
&& ( chunk
== *(const apr_uintptr_t *)