X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=object.c;h=9adc87479bde2a0b2a0a0335aed12a9f485facff;hp=4d46e0d5e4285251e60d2a6d938f38355ac5d2c0;hb=74237d6236d7e32f69469ff26df3f3bb3875f523;hpb=a549e11cc2fee10ddf66dd98ea79f7c624eee34e diff --git a/object.c b/object.c index 4d46e0d5..9adc8747 100644 --- a/object.c +++ b/object.c @@ -9,7 +9,7 @@ struct object **objs; static int nr_objs; int obj_allocs; -int track_object_refs = 1; +int track_object_refs = 0; static int hashtable_index(const unsigned char *sha1) { @@ -200,8 +200,11 @@ struct object *parse_object(const unsigned char *sha1) obj = &blob->object; } else if (!strcmp(type, tree_type)) { struct tree *tree = lookup_tree(sha1); - parse_tree_buffer(tree, buffer, size); obj = &tree->object; + if (!tree->object.parsed) { + parse_tree_buffer(tree, buffer, size); + buffer = NULL; + } } else if (!strcmp(type, commit_type)) { struct commit *commit = lookup_commit(sha1); parse_commit_buffer(commit, buffer, size);