cleanup unpack-trees.c: shrink struct tree_entry_list
Remove the two write-only fields executable and symlink from struct tree_entry_list. Also replace usage of the field directory with S_ISDIR checks on the mode field, and then remove this now obsolete field, too. Noticed by David Kastrup. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
24d0063494
commit
1843d8d545
@ -11,9 +11,6 @@
|
|||||||
|
|
||||||
struct tree_entry_list {
|
struct tree_entry_list {
|
||||||
struct tree_entry_list *next;
|
struct tree_entry_list *next;
|
||||||
unsigned directory : 1;
|
|
||||||
unsigned executable : 1;
|
|
||||||
unsigned symlink : 1;
|
|
||||||
unsigned int mode;
|
unsigned int mode;
|
||||||
const char *name;
|
const char *name;
|
||||||
const unsigned char *sha1;
|
const unsigned char *sha1;
|
||||||
@ -38,9 +35,6 @@ static struct tree_entry_list *create_tree_entry_list(struct tree *tree)
|
|||||||
entry->name = one.path;
|
entry->name = one.path;
|
||||||
entry->sha1 = one.sha1;
|
entry->sha1 = one.sha1;
|
||||||
entry->mode = one.mode;
|
entry->mode = one.mode;
|
||||||
entry->directory = S_ISDIR(one.mode) != 0;
|
|
||||||
entry->executable = (one.mode & S_IXUSR) != 0;
|
|
||||||
entry->symlink = S_ISLNK(one.mode) != 0;
|
|
||||||
entry->next = NULL;
|
entry->next = NULL;
|
||||||
|
|
||||||
*list_p = entry;
|
*list_p = entry;
|
||||||
@ -141,9 +135,9 @@ static int unpack_trees_rec(struct tree_entry_list **posns, int len,
|
|||||||
#endif
|
#endif
|
||||||
if (!first || entcmp(first, firstdir,
|
if (!first || entcmp(first, firstdir,
|
||||||
posns[i]->name,
|
posns[i]->name,
|
||||||
posns[i]->directory) > 0) {
|
S_ISDIR(posns[i]->mode)) > 0) {
|
||||||
first = posns[i]->name;
|
first = posns[i]->name;
|
||||||
firstdir = posns[i]->directory;
|
firstdir = S_ISDIR(posns[i]->mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* No name means we're done */
|
/* No name means we're done */
|
||||||
@ -177,7 +171,7 @@ static int unpack_trees_rec(struct tree_entry_list **posns, int len,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (posns[i]->directory) {
|
if (S_ISDIR(posns[i]->mode)) {
|
||||||
struct tree *tree = lookup_tree(posns[i]->sha1);
|
struct tree *tree = lookup_tree(posns[i]->sha1);
|
||||||
any_dirs = 1;
|
any_dirs = 1;
|
||||||
parse_tree(tree);
|
parse_tree(tree);
|
||||||
|
Loading…
Reference in New Issue
Block a user