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