Convert 'create_simplify()' to use the pathspec struct interface from
using the '_raw' entry in the pathspec.

Signed-off-by: Brandon Williams <bmw...@google.com>
---
 dir.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/dir.c b/dir.c
index bfa8c8a..7df292b 100644
--- a/dir.c
+++ b/dir.c
@@ -1787,25 +1787,24 @@ static int cmp_name(const void *p1, const void *p2)
        return name_compare(e1->name, e1->len, e2->name, e2->len);
 }
 
-static struct path_simplify *create_simplify(const char **pathspec)
+static struct path_simplify *create_simplify(const struct pathspec *pathspec)
 {
-       int nr, alloc = 0;
+       int i;
        struct path_simplify *simplify = NULL;
 
-       if (!pathspec)
+       if (!pathspec || !pathspec->nr)
                return NULL;
 
-       for (nr = 0 ; ; nr++) {
+       ALLOC_ARRAY(simplify, pathspec->nr + 1);
+       for (i = 0; i < pathspec->nr; i++) {
                const char *match;
-               ALLOC_GROW(simplify, nr + 1, alloc);
-               match = *pathspec++;
-               if (!match)
-                       break;
-               simplify[nr].path = match;
-               simplify[nr].len = simple_length(match);
+               match = pathspec->items[i].match;
+               simplify[i].path = match;
+               simplify[i].len = pathspec->items[i].nowildcard_len;
        }
-       simplify[nr].path = NULL;
-       simplify[nr].len = 0;
+       simplify[i].path = NULL;
+       simplify[i].len = 0;
+
        return simplify;
 }
 
@@ -2036,7 +2035,7 @@ int read_directory(struct dir_struct *dir, const char 
*path, int len, const stru
         * subset of positive ones, which has no impacts on
         * create_simplify().
         */
-       simplify = create_simplify(pathspec ? pathspec->_raw : NULL);
+       simplify = create_simplify(pathspec);
        untracked = validate_untracked_cache(dir, len, pathspec);
        if (!untracked)
                /*
-- 
2.8.0.rc3.226.g39d4020

Reply via email to