X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=walker.c;h=0e68ee6d2e2fb1b866ecec00c5f6446af366a62e;hb=58eda02257a89df6e05f504bdf87e578d90f3b5e;hp=c10eca88261eed6b0e5c3fc2fdc19b8332c4ac6b;hpb=6abf189506712a0e3c5ea796d136177b8f24ca22;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; }