projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Switch "read_tree_recursive()" over to tree-walk functionality
[git.git]
/
builtin-read-tree.c
diff --git
a/builtin-read-tree.c
b/builtin-read-tree.c
index
716f792
..
5e513c8
100644
(file)
--- a/
builtin-read-tree.c
+++ b/
builtin-read-tree.c
@@
-39,7
+39,7
@@
static struct tree_entry_list df_conflict_list = {
typedef int (*merge_fn_t)(struct cache_entry **src);
typedef int (*merge_fn_t)(struct cache_entry **src);
-static int entcmp(c
har *name1, int dir1,
char *name2, int dir2)
+static int entcmp(c
onst char *name1, int dir1, const
char *name2, int dir2)
{
int len1 = strlen(name1);
int len2 = strlen(name2);
{
int len1 = strlen(name1);
int len2 = strlen(name2);
@@
-67,7
+67,7
@@
static int unpack_trees_rec(struct tree_entry_list **posns, int len,
int src_size = len + 1;
do {
int i;
int src_size = len + 1;
do {
int i;
- char *first;
+ c
onst c
har *first;
int firstdir = 0;
int pathlen;
unsigned ce_size;
int firstdir = 0;
int pathlen;
unsigned ce_size;
@@
-161,9
+161,10
@@
static int unpack_trees_rec(struct tree_entry_list **posns, int len,
}
if (posns[i]->directory) {
}
if (posns[i]->directory) {
+ struct tree *tree = lookup_tree(posns[i]->sha1);
any_dirs = 1;
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;
posns[i] = posns[i]->next;
src[i + merge] = &df_conflict_entry;
continue;
@@
-187,7
+188,7
@@
static int unpack_trees_rec(struct tree_entry_list **posns, int len,
any_files = 1;
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;
src[i + merge] = ce;
subposns[i] = &df_conflict_list;
posns[i] = posns[i]->next;
@@
-783,7
+784,7
@@
static void prime_cache_tree_rec(struct cache_tree *it, struct tree *tree)
cnt++;
else {
struct cache_tree_sub *sub;
cnt++;
else {
struct cache_tree_sub *sub;
- struct tree *subtree =
(struct tree *)ent->item.tree
;
+ struct tree *subtree =
lookup_tree(ent->sha1)
;
if (!subtree->object.parsed)
parse_tree(subtree);
sub = cache_tree_sub(it, ent->name);
if (!subtree->object.parsed)
parse_tree(subtree);
sub = cache_tree_sub(it, ent->name);