]> git.ipfire.org Git - thirdparty/git.git/commitdiff
grep: use grep_or_expr() in compile_pattern_or()
authorRené Scharfe <l.s.r@web.de>
Thu, 6 Jan 2022 09:51:00 +0000 (10:51 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Jan 2022 20:07:09 +0000 (12:07 -0800)
Move the definition of grep_or_expr() up and use this function in
compile_pattern_or() to reduce code duplication.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
grep.c

diff --git a/grep.c b/grep.c
index 47c75ab7fb6ab362e988e7a1231e912d95efda7b..f1bbe80ccbb2ebeee922e7e20ba6af55436f64fa 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -595,6 +595,15 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
        }
 }
 
+static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right)
+{
+       struct grep_expr *z = xcalloc(1, sizeof(*z));
+       z->node = GREP_NODE_OR;
+       z->u.binary.left = left;
+       z->u.binary.right = right;
+       return z;
+}
+
 static struct grep_expr *compile_pattern_or(struct grep_pat **);
 static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
 {
@@ -677,7 +686,7 @@ static struct grep_expr *compile_pattern_and(struct grep_pat **list)
 static struct grep_expr *compile_pattern_or(struct grep_pat **list)
 {
        struct grep_pat *p;
-       struct grep_expr *x, *y, *z;
+       struct grep_expr *x, *y;
 
        x = compile_pattern_and(list);
        p = *list;
@@ -685,11 +694,7 @@ static struct grep_expr *compile_pattern_or(struct grep_pat **list)
                y = compile_pattern_or(list);
                if (!y)
                        die("not a pattern expression %s", p->pattern);
-               CALLOC_ARRAY(z, 1);
-               z->node = GREP_NODE_OR;
-               z->u.binary.left = x;
-               z->u.binary.right = y;
-               return z;
+               return grep_or_expr(x, y);
        }
        return x;
 }
@@ -714,15 +719,6 @@ static struct grep_expr *grep_true_expr(void)
        return z;
 }
 
-static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right)
-{
-       struct grep_expr *z = xcalloc(1, sizeof(*z));
-       z->node = GREP_NODE_OR;
-       z->u.binary.left = left;
-       z->u.binary.right = right;
-       return z;
-}
-
 static struct grep_expr *prep_header_patterns(struct grep_opt *opt)
 {
        struct grep_pat *p;