Subject: [PATCH v6] git: use logical-not operator to toggle between 0 and 1

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

From: Seija Kijin <[email-masked]>

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

Signed-off-by: Seija Kijin <[email-masked]>
---
    git: use logical-not operator 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-v6
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1620/AreaZR/buffer-v6
Pull-Request: https://github.com/git/git/pull/1620

Range-diff vs v5:

 1:  5bb2cf10062 ! 1:  0fe9e776177 git: use ^=1 to toggle between 0 and 1
     @@ Metadata
      Author: Seija Kijin <[email-masked]>
      
       ## Commit message ##
     -    git: use ^=1 to toggle between 0 and 1
     +    git: use logical-not operator 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
     +    using a logical-not to switch instead of a
          modulus makes more sense and is more efficient.
      
          Signed-off-by: Seija Kijin <[email-masked]>
     @@ diff.c: static void mark_color_as_moved(struct diff_options *o,
       
       			if (contiguous && pmb_nr && moved_symbol == l->s)
      -				flipped_block = (flipped_block + 1) % 2;
     -+				flipped_block ^= 1;
     ++				flipped_block = !flipped_block;
       			else
       				flipped_block = 0;

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

diff --git a/diff.c b/diff.c
index 266ddf18e73..48335971a4c 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 = !flipped_block;
 			else
 				flipped_block = 0;

base-commit: d882f382b3d939d90cfa58d17b17802338f05d66
-- 
gitgitgadget