X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=walker.c;h=0e68ee6d2e2fb1b866ecec00c5f6446af366a62e;hb=e46f9c8161a0df4d4b9f8c8a98b1a8c0d9452cfd;hp=c10eca88261eed6b0e5c3fc2fdc19b8332c4ac6b;hpb=a6828f536119c3288b0be772e3870f1a464d017d;p=git.git diff --git a/walker.c b/walker.c index c10eca882..0e68ee6d2 100644 --- a/walker.c +++ b/walker.c @@ -59,6 +59,7 @@ static int process_tree(struct walker *walker, struct tree *tree) free(tree->buffer); tree->buffer = NULL; tree->size = 0; + tree->object.parsed = 0; return 0; } @@ -190,9 +191,13 @@ static int interpret_target(struct walker *walker, char *target, unsigned char * if (!get_sha1_hex(target, sha1)) return 0; if (!check_ref_format(target)) { - if (!walker->fetch_ref(walker, target, sha1)) { + struct ref *ref = alloc_ref_from_str(target); + if (!walker->fetch_ref(walker, ref)) { + hashcpy(sha1, ref->old_sha1); + free(ref); return 0; } + free(ref); } return -1; }