diff_filespec: use only 2 bits for is_binary flag
The is_binary flag needs only three values: -1, 0, and 1. However, we use a whole 32-bit int for it on most systems (both 32- and 64- bit). Instead, we can mark it to use only 2 bits. On 32-bit systems, this lets it end up as part of the bitfield above (saving 4 bytes). On 64-bit systems, we don't see any change (because the savings end up as padding), but it does leave room for another "free" 32-bit value to be added later. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Jan 16, 2014 at 20:25 UTC
cbfe47b67fc1072998c73e6d43cf6ad061a436f5
1 file changed
+1
-1
diffcore.h
+1
-1
@@ -46,7 +46,7 @@ struct diff_filespec {
46
unsigned is_stdin : 1;
47
unsigned has_more_entries : 1; /* only appear in combined diff */
48
/* data should be considered "binary"; -1 means "don't know yet" */
49
- int is_binary;
49
+ int is_binary : 2;
50
struct userdiff_driver *driver;
51
};
52