X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=builtin-read-tree.c;h=f0b8dad6eb5c469b78f08c12aa0f62befbb54e80;hb=a755dfe45c10ccd9f180d3c267602ad18d127d6a;hp=ec40d013c4d8508bfd10d75e2dab3090dea64a45;hpb=a861b58bbf4bced62a0b8faa8deba107edb0bffd;p=git.git diff --git a/builtin-read-tree.c b/builtin-read-tree.c index ec40d013..f0b8dad6 100644 --- a/builtin-read-tree.c +++ b/builtin-read-tree.c @@ -38,7 +38,7 @@ static struct tree_entry_list df_conflict_list = { typedef int (*merge_fn_t)(struct cache_entry **src); -static int entcmp(char *name1, int dir1, char *name2, int dir2) +static int entcmp(const char *name1, int dir1, const char *name2, int dir2) { int len1 = strlen(name1); int len2 = strlen(name2); @@ -66,7 +66,7 @@ static int unpack_trees_rec(struct tree_entry_list **posns, int len, int src_size = len + 1; do { int i; - char *first; + const char *first; int firstdir = 0; int pathlen; unsigned ce_size; @@ -160,9 +160,10 @@ static int unpack_trees_rec(struct tree_entry_list **posns, int len, } if (posns[i]->directory) { + struct tree *tree = lookup_tree(posns[i]->sha1); any_dirs = 1; - parse_tree(posns[i]->item.tree); - subposns[i] = posns[i]->item.tree->entries; + parse_tree(tree); + subposns[i] = tree->entries; posns[i] = posns[i]->next; src[i + merge] = &df_conflict_entry; continue; @@ -186,7 +187,7 @@ static int unpack_trees_rec(struct tree_entry_list **posns, int len, any_files = 1; - memcpy(ce->sha1, posns[i]->item.any->sha1, 20); + memcpy(ce->sha1, posns[i]->sha1, 20); src[i + merge] = ce; subposns[i] = &df_conflict_list; posns[i] = posns[i]->next;