fast-import: clarify "inline" logic in file_change_m
When we read a fast-import line like: M 100644 :1 foo.c we point the local object_entry variable "oe" to the object named by the mark ":1". When the input uses the "inline" construct, however, we do not have such an object_entry. The current code is careful not to access "oe" in the inline case, but we can make the assumption even more obvious (and catch violations of it) by setting oe to NULL and adding a comment. As a bonus, this also squelches an over-zealous gcc -Wuninitialized warning, which means we can drop the "oe = oe" initialization hack. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Mar 21, 2013 at 11:44 UTC
3aa99df802020f73981d1169c05375d5e2b49cc9
1 file changed
+2
-1
fast-import.c
+2
-1
@@ -2265,7 +2265,7 @@ static void file_change_m(struct branch *b)
2265
const char *p = command_buf.buf + 2;
2266
static struct strbuf uq = STRBUF_INIT;
2267
const char *endp;
2268
- struct object_entry *oe = oe;
2268
+ struct object_entry *oe;
2269
unsigned char sha1[20];
2270
uint16_t mode, inline_data = 0;
2271
@@ -2292,6 +2292,7 @@ static void file_change_m(struct branch *b)
2292
hashcpy(sha1, oe->idx.sha1);
2293
} else if (!prefixcmp(p, "inline ")) {
2294
inline_data = 1;
2295
+ oe = NULL; /* not used with inline_data, but makes gcc happy */
2296
p += strlen("inline"); /* advance to space */
2297
} else {
2298
if (get_sha1_hex(p, sha1))