Subject: [PATCH v5] git: use ^=1 to toggle between 0 and 1

From: "AreaZR via GitGitGadget" <[email-masked]>
Date: Wed, 18 Dec 2024 16:46:34 +0000

From: Seija Kijin <[email-masked]>

If it is known that an int is either 1 or 0,
doing an exclusive or to switch instead of a
modulus makes more sense and is more efficient.

Signed-off-by: Seija Kijin <[email-masked]>
---
    git: use ^=1 to toggle between 0 and 1
    
    If it is known that an int is either 1 or 0, doing an exclusive or to
    switch instead of a modulus makes more sense and is more efficient.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1620%2FAreaZR%2Fbuffer-v5
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1620/AreaZR/buffer-v5
Pull-Request: https://github.com/git/git/pull/1620

Range-diff vs v4:

 1:  db1f0b1a323 ! 1:  5bb2cf10062 git: use ^=1 to toggle between 0 and 1
     @@ diff.c: static void mark_color_as_moved(struct diff_options *o,
       			else
       				flipped_block = 0;
       
     -
     - ## t/helper/test-path-utils.c ##
     -@@ t/helper/test-path-utils.c: static int check_dotfile(const char *x, const char **argv,
     - 	int res = 0, expect = 1;
     - 	for (; *argv; argv++) {
     - 		if (!strcmp("--not", *argv))
     --			expect = !expect;
     -+			expect ^= 1;
     - 		else if (expect != (is_hfs(*argv) || is_ntfs(*argv)))
     - 			res = error("'%s' is %s.git%s", *argv,
     - 				    expect ? "not " : "", x);

 diff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/diff.c b/diff.c
index 266ddf18e73..5c2ac8d6fd1 100644
--- a/diff.c
+++ b/diff.c
@@ -1231,7 +1231,7 @@ static void mark_color_as_moved(struct diff_options *o,
 							    &pmb_nr);
 
 			if (contiguous && pmb_nr && moved_symbol == l->s)
-				flipped_block = (flipped_block + 1) % 2;
+				flipped_block ^= 1;
 			else
 				flipped_block = 0;

base-commit: d882f382b3d939d90cfa58d17b17802338f05d66
-- 
gitgitgadget