mirror of
https://github.com/git/git
synced 2024-10-30 14:03:28 +00:00
fsck: remove redundant parse_tree() invocation
If obj->type == OBJ_TREE, an invocation of fsck_walk() will invoke
parse_tree() and return quickly if that returns nonzero, so it is of no
use for traverse_one_object() to invoke parse_tree() in this situation
before invoking fsck_walk(). Remove that code.
The behavior of traverse_one_object() is changed slightly in that it now
returns -1 instead of 1 in the case that parse_tree() fails, but this is
not an issue because its only caller (traverse_reachable) does not care
about the value as long as it is nonzero.
This code was introduced in commit 271b8d2
("builtin-fsck: move away
from object-refs to fsck_walk", 2008-02-25). The same issue existed in
that commit.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
cac25fc330
commit
ad2db4030e
1 changed files with 1 additions and 12 deletions
|
@ -168,18 +168,7 @@ static void mark_object_reachable(struct object *obj)
|
||||||
|
|
||||||
static int traverse_one_object(struct object *obj)
|
static int traverse_one_object(struct object *obj)
|
||||||
{
|
{
|
||||||
int result;
|
return fsck_walk(obj, obj, &fsck_walk_options);
|
||||||
struct tree *tree = NULL;
|
|
||||||
|
|
||||||
if (obj->type == OBJ_TREE) {
|
|
||||||
tree = (struct tree *)obj;
|
|
||||||
if (parse_tree(tree) < 0)
|
|
||||||
return 1; /* error already displayed */
|
|
||||||
}
|
|
||||||
result = fsck_walk(obj, obj, &fsck_walk_options);
|
|
||||||
if (tree)
|
|
||||||
free_tree_buffer(tree);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int traverse_reachable(void)
|
static int traverse_reachable(void)
|
||||||
|
|
Loading…
Reference in a new issue