This field will be used when tree_entry_interesting() is converted to use struct pathspec. Currently it uses pathlens[] in struct diff_options to avoid calculating string over and over again. Signed-off-by: Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> --- cache.h | 3 +++ dir.c | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletions(-) diff --git a/cache.h b/cache.h index 3330769..36819b6 100644 --- a/cache.h +++ b/cache.h @@ -496,6 +496,9 @@ extern int ie_modified(const struct index_state *, struct cache_entry *, struct struct pathspec { const char **raw; /* get_pathspec() result, not freed by free_pathspec() */ int nr; + struct pathspec_item { + int len; + } *items; }; extern int init_pathspec(struct pathspec *, const char **); diff --git a/dir.c b/dir.c index 205adc4..646c79f 100644 --- a/dir.c +++ b/dir.c @@ -1074,6 +1074,7 @@ int remove_path(const char *name) int init_pathspec(struct pathspec *pathspec, const char **paths) { const char **p = paths; + int i; memset(pathspec, 0, sizeof(*pathspec)); if (!p) @@ -1082,10 +1083,20 @@ int init_pathspec(struct pathspec *pathspec, const char **paths) p++; pathspec->raw = paths; pathspec->nr = p - paths; + if (!pathspec->nr) + return 0; + + pathspec->items = xmalloc(sizeof(struct pathspec_item)*pathspec->nr); + for (i = 0; i < pathspec->nr; i++) { + struct pathspec_item *item = pathspec->items+i; + + item->len = strlen(paths[i]); + } return 0; } void free_pathspec(struct pathspec *pathspec) { - ; /* do nothing */ + free(pathspec->items); + pathspec->items = NULL; } -- 1.7.3.3.476.g10a82 -- 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