Back in history, read_tree_recursive() did not have context argument to pass custom parameters through. To support read_tree(), it took "stage" from read_tree() and pass it to read_tree_fn_t function. Then context argument was added but "stage" remains as a read_tree_fn_t argument. This patch converts read_tree() to pass stage as a context instead, thus remove the last usage of "stage" argument in read_tree_recursive() and read_tree_fn_t. When the opportunity comes, "stage" should be removed from read_tree_fn_t and read_tree_recursive(). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- tree.c | 6 +++--- tree.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tree.c b/tree.c index 0d703a0..02f2ca0 100644 --- a/tree.c +++ b/tree.c @@ -31,7 +31,7 @@ static int read_one_entry_opt(const unsigned char *sha1, const char *base, int b static int read_one_entry(const unsigned char *sha1, const char *base, int baselen, const char *pathname, unsigned mode, int stage, void *context) { - return read_one_entry_opt(sha1, base, baselen, pathname, mode, stage, + return read_one_entry_opt(sha1, base, baselen, pathname, mode, *(int *)context, ADD_CACHE_OK_TO_ADD|ADD_CACHE_SKIP_DFCHECK); } @@ -41,7 +41,7 @@ static int read_one_entry(const unsigned char *sha1, const char *base, int basel */ static int read_one_entry_quick(const unsigned char *sha1, const char *base, int baselen, const char *pathname, unsigned mode, int stage, void *context) { - return read_one_entry_opt(sha1, base, baselen, pathname, mode, stage, + return read_one_entry_opt(sha1, base, baselen, pathname, mode, *(int *)context, ADD_CACHE_JUST_APPEND); } @@ -206,7 +206,7 @@ int read_tree(struct tree *tree, int stage, const char **match) if (!fn) fn = read_one_entry_quick; - err = read_tree_recursive(tree, "", 0, stage, match, fn, NULL); + err = read_tree_recursive(tree, "", 0, 0, match, fn, &stage); if (fn == read_one_entry || err) return err; diff --git a/tree.h b/tree.h index 2ff01a4..d0f4c9b 100644 --- a/tree.h +++ b/tree.h @@ -21,6 +21,7 @@ int parse_tree(struct tree *tree); struct tree *parse_tree_indirect(const unsigned char *sha1); #define READ_TREE_RECURSIVE 1 +/* FIXME: remove "int stage" argument from read_tree_fn_t */ typedef int (*read_tree_fn_t)(const unsigned char *, const char *, int, const char *, unsigned int, int, void *); extern int read_tree_recursive(struct tree *tree, -- 1.6.2.2.693.g5a1be -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html