Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tree-walk.c4
-rw-r--r--tree-walk.h6
-rw-r--r--unpack-trees.c6
3 files changed, 8 insertions, 8 deletions
diff --git a/tree-walk.c b/tree-walk.c
index 4610f77383..70f9eb5f1b 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -168,7 +168,7 @@ int tree_entry_gently(struct tree_desc *desc, struct name_entry *entry)
void setup_traverse_info(struct traverse_info *info, const char *base)
{
- int pathlen = strlen(base);
+ size_t pathlen = strlen(base);
static struct traverse_info dummy;
memset(info, 0, sizeof(*info));
@@ -184,7 +184,7 @@ void setup_traverse_info(struct traverse_info *info, const char *base)
char *make_traverse_path(char *path, const struct traverse_info *info,
const char *name, size_t namelen)
{
- int pathlen = info->pathlen;
+ size_t pathlen = info->pathlen;
path[pathlen + namelen] = 0;
for (;;) {
diff --git a/tree-walk.h b/tree-walk.h
index baa2aa62c7..47bf85d282 100644
--- a/tree-walk.h
+++ b/tree-walk.h
@@ -60,7 +60,7 @@ struct traverse_info {
size_t namelen;
unsigned mode;
- int pathlen;
+ size_t pathlen;
struct pathspec *pathspec;
unsigned long df_conflicts;
@@ -74,9 +74,9 @@ char *make_traverse_path(char *path, const struct traverse_info *info,
const char *name, size_t namelen);
void setup_traverse_info(struct traverse_info *info, const char *base);
-static inline int traverse_path_len(const struct traverse_info *info, const struct name_entry *n)
+static inline size_t traverse_path_len(const struct traverse_info *info, const struct name_entry *n)
{
- return info->pathlen + tree_entry_len(n);
+ return st_add(info->pathlen, tree_entry_len(n));
}
/* in general, positive means "kind of interesting" */
diff --git a/unpack-trees.c b/unpack-trees.c
index 26f971f7ff..8dbfb22770 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -686,7 +686,7 @@ static int index_pos_by_traverse_info(struct name_entry *names,
struct traverse_info *info)
{
struct unpack_trees_options *o = info->data;
- int len = traverse_path_len(info, names);
+ size_t len = traverse_path_len(info, names);
char *name = xmalloc(len + 1 /* slash */ + 1 /* NUL */);
int pos;
@@ -814,7 +814,7 @@ static int traverse_trees_recursive(int n, unsigned long dirmask,
newinfo.name = p->path;
newinfo.namelen = p->pathlen;
newinfo.mode = p->mode;
- newinfo.pathlen += tree_entry_len(p) + 1;
+ newinfo.pathlen = st_add3(newinfo.pathlen, tree_entry_len(p), 1);
newinfo.df_conflicts |= df_conflicts;
/*
@@ -960,7 +960,7 @@ static struct cache_entry *create_ce_entry(const struct traverse_info *info,
struct index_state *istate,
int is_transient)
{
- int len = traverse_path_len(info, n);
+ size_t len = traverse_path_len(info, n);
struct cache_entry *ce =
is_transient ?
make_empty_transient_cache_entry(len) :