tree-walk: convert get_tree_entry_follow_symlinks to object_id
Since the only caller of this function already uses struct object_id, update get_tree_entry_follow_symlinks to use it in parameters and internally. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
e84bc23cb6
commit
3b683bcf85
@@ -1685,8 +1685,8 @@ static int get_oid_with_context_1(const char *name,
|
|||||||
if (new_filename)
|
if (new_filename)
|
||||||
filename = new_filename;
|
filename = new_filename;
|
||||||
if (flags & GET_OID_FOLLOW_SYMLINKS) {
|
if (flags & GET_OID_FOLLOW_SYMLINKS) {
|
||||||
ret = get_tree_entry_follow_symlinks(tree_oid.hash,
|
ret = get_tree_entry_follow_symlinks(&tree_oid,
|
||||||
filename, oid->hash, &oc->symlink_path,
|
filename, oid, &oc->symlink_path,
|
||||||
&oc->mode);
|
&oc->mode);
|
||||||
} else {
|
} else {
|
||||||
ret = get_tree_entry(&tree_oid, filename, oid,
|
ret = get_tree_entry(&tree_oid, filename, oid,
|
||||||
|
|||||||
16
tree-walk.c
16
tree-walk.c
@@ -488,7 +488,7 @@ int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info)
|
|||||||
struct dir_state {
|
struct dir_state {
|
||||||
void *tree;
|
void *tree;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
unsigned char sha1[20];
|
struct object_id oid;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int find_tree_entry(struct tree_desc *t, const char *name, struct object_id *result, unsigned *mode)
|
static int find_tree_entry(struct tree_desc *t, const char *name, struct object_id *result, unsigned *mode)
|
||||||
@@ -576,7 +576,7 @@ int get_tree_entry(const struct object_id *tree_oid, const char *name, struct ob
|
|||||||
* See the code for enum follow_symlink_result for a description of
|
* See the code for enum follow_symlink_result for a description of
|
||||||
* the return values.
|
* the return values.
|
||||||
*/
|
*/
|
||||||
enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_sha1, const char *name, unsigned char *result, struct strbuf *result_path, unsigned *mode)
|
enum follow_symlinks_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode)
|
||||||
{
|
{
|
||||||
int retval = MISSING_OBJECT;
|
int retval = MISSING_OBJECT;
|
||||||
struct dir_state *parents = NULL;
|
struct dir_state *parents = NULL;
|
||||||
@@ -589,7 +589,7 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
|
|||||||
|
|
||||||
init_tree_desc(&t, NULL, 0UL);
|
init_tree_desc(&t, NULL, 0UL);
|
||||||
strbuf_addstr(&namebuf, name);
|
strbuf_addstr(&namebuf, name);
|
||||||
hashcpy(current_tree_oid.hash, tree_sha1);
|
oidcpy(¤t_tree_oid, tree_oid);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
int find_result;
|
int find_result;
|
||||||
@@ -609,11 +609,11 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
|
|||||||
ALLOC_GROW(parents, parents_nr + 1, parents_alloc);
|
ALLOC_GROW(parents, parents_nr + 1, parents_alloc);
|
||||||
parents[parents_nr].tree = tree;
|
parents[parents_nr].tree = tree;
|
||||||
parents[parents_nr].size = size;
|
parents[parents_nr].size = size;
|
||||||
hashcpy(parents[parents_nr].sha1, root.hash);
|
oidcpy(&parents[parents_nr].oid, &root);
|
||||||
parents_nr++;
|
parents_nr++;
|
||||||
|
|
||||||
if (namebuf.buf[0] == '\0') {
|
if (namebuf.buf[0] == '\0') {
|
||||||
hashcpy(result, root.hash);
|
oidcpy(result, &root);
|
||||||
retval = FOUND;
|
retval = FOUND;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@@ -663,7 +663,7 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
|
|||||||
|
|
||||||
/* We could end up here via a symlink to dir/.. */
|
/* We could end up here via a symlink to dir/.. */
|
||||||
if (namebuf.buf[0] == '\0') {
|
if (namebuf.buf[0] == '\0') {
|
||||||
hashcpy(result, parents[parents_nr - 1].sha1);
|
oidcpy(result, &parents[parents_nr - 1].oid);
|
||||||
retval = FOUND;
|
retval = FOUND;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@@ -677,7 +677,7 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
|
|||||||
|
|
||||||
if (S_ISDIR(*mode)) {
|
if (S_ISDIR(*mode)) {
|
||||||
if (!remainder) {
|
if (!remainder) {
|
||||||
hashcpy(result, current_tree_oid.hash);
|
oidcpy(result, ¤t_tree_oid);
|
||||||
retval = FOUND;
|
retval = FOUND;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@@ -687,7 +687,7 @@ enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_s
|
|||||||
1 + first_slash - namebuf.buf);
|
1 + first_slash - namebuf.buf);
|
||||||
} else if (S_ISREG(*mode)) {
|
} else if (S_ISREG(*mode)) {
|
||||||
if (!remainder) {
|
if (!remainder) {
|
||||||
hashcpy(result, current_tree_oid.hash);
|
oidcpy(result, ¤t_tree_oid);
|
||||||
retval = FOUND;
|
retval = FOUND;
|
||||||
} else {
|
} else {
|
||||||
retval = NOT_DIR;
|
retval = NOT_DIR;
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ enum follow_symlinks_result {
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
enum follow_symlinks_result get_tree_entry_follow_symlinks(unsigned char *tree_sha1, const char *name, unsigned char *result, struct strbuf *result_path, unsigned *mode);
|
enum follow_symlinks_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode);
|
||||||
|
|
||||||
struct traverse_info {
|
struct traverse_info {
|
||||||
const char *traverse_path;
|
const char *traverse_path;
|
||||||
|
|||||||
Reference in New Issue
Block a user