aboutsummaryrefslogtreecommitdiffstats
path: root/tree-walk.c
diff options
context:
space:
mode:
authorbrian m. carlson <sandals@crustytoothpaste.net>2018-03-12 02:27:51 +0000
committerJunio C Hamano <gitster@pobox.com>2018-03-14 09:23:50 -0700
commit916bc35b29af6e0f4f215dea9c84e4185de0fec4 (patch)
tree21f8318b909c7dc21129bad02d6adc7d46fbc705 /tree-walk.c
parent575042a04f671fa1a9cf9d5c21b30a2dadbe6c7e (diff)
downloadgit-916bc35b29af6e0f4f215dea9c84e4185de0fec4.tar.gz
tree-walk: convert tree entry functions to object_id
Convert get_tree_entry and find_tree_entry to take pointers to struct object_id. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-walk.c')
-rw-r--r--tree-walk.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/tree-walk.c b/tree-walk.c
index 521defdaa2..a60837c491 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -492,7 +492,7 @@ struct dir_state {
unsigned char sha1[20];
};
-static int find_tree_entry(struct tree_desc *t, const char *name, unsigned char *result, unsigned *mode)
+static int find_tree_entry(struct tree_desc *t, const char *name, struct object_id *result, unsigned *mode)
{
int namelen = strlen(name);
while (t->size) {
@@ -511,7 +511,7 @@ static int find_tree_entry(struct tree_desc *t, const char *name, unsigned char
if (cmp < 0)
break;
if (entrylen == namelen) {
- hashcpy(result, oid->hash);
+ oidcpy(result, oid);
return 0;
}
if (name[entrylen] != '/')
@@ -519,27 +519,27 @@ static int find_tree_entry(struct tree_desc *t, const char *name, unsigned char
if (!S_ISDIR(*mode))
break;
if (++entrylen == namelen) {
- hashcpy(result, oid->hash);
+ oidcpy(result, oid);
return 0;
}
- return get_tree_entry(oid->hash, name + entrylen, result, mode);
+ return get_tree_entry(oid, name + entrylen, result, mode);
}
return -1;
}
-int get_tree_entry(const unsigned char *tree_sha1, const char *name, unsigned char *sha1, unsigned *mode)
+int get_tree_entry(const struct object_id *tree_oid, const char *name, struct object_id *oid, unsigned *mode)
{
int retval;
void *tree;
unsigned long size;
- unsigned char root[20];
+ struct object_id root;
- tree = read_object_with_reference(tree_sha1, tree_type, &size, root);
+ tree = read_object_with_reference(tree_oid->hash, tree_type, &size, root.hash);
if (!tree)
return -1;
if (name[0] == '\0') {
- hashcpy(sha1, root);
+ oidcpy(oid, &root);
free(tree);
return 0;
}
@@ -549,7 +549,7 @@ int get_tree_entry(const unsigned char *tree_sha1, const char *name, unsigned ch
} else {
struct tree_desc t;
init_tree_desc(&t, tree, size);
- retval = find_tree_entry(&t, name, sha1, mode);
+ retval = find_tree_entry(&t, name, oid, mode);
}
free(tree);
return retval;
@@ -671,7 +671,7 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
/* Look up the first (or only) path component in the tree. */
find_result = find_tree_entry(&t, namebuf.buf,
- current_tree_oid.hash, mode);
+ &current_tree_oid, mode);
if (find_result) {
goto done;
}