[template-glib] expr: add nop expr node
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [template-glib] expr: add nop expr node
- Date: Wed, 4 May 2022 22:33:56 +0000 (UTC)
commit 22d5e5dbb7a8507a0bb2d54e1b20ae1612179e2b
Author: Christian Hergert <chergert redhat com>
Date: Wed May 4 15:29:59 2022 -0700
expr: add nop expr node
This can be helpful in some upcoming places.
src/tmpl-expr-eval.c | 3 +++
src/tmpl-expr-types.h | 1 +
src/tmpl-expr.c | 13 ++++++++++++-
src/tmpl-expr.h | 2 ++
4 files changed, 18 insertions(+), 1 deletion(-)
---
diff --git a/src/tmpl-expr-eval.c b/src/tmpl-expr-eval.c
index 956d71a..d2860b1 100644
--- a/src/tmpl-expr-eval.c
+++ b/src/tmpl-expr-eval.c
@@ -1359,6 +1359,9 @@ tmpl_expr_eval_internal (TmplExpr *node,
case TMPL_EXPR_FUNC:
return tmpl_expr_func_eval ((TmplExprFunc *)node, scope, return_value, error);
+ case TMPL_EXPR_NOP:
+ return TRUE;
+
default:
break;
}
diff --git a/src/tmpl-expr-types.h b/src/tmpl-expr-types.h
index 079c02e..84ee57b 100644
--- a/src/tmpl-expr-types.h
+++ b/src/tmpl-expr-types.h
@@ -77,6 +77,7 @@ typedef enum
TMPL_EXPR_INVERT_BOOLEAN,
TMPL_EXPR_ARGS,
TMPL_EXPR_FUNC,
+ TMPL_EXPR_NOP,
} TmplExprType;
typedef enum
diff --git a/src/tmpl-expr.c b/src/tmpl-expr.c
index 64f9054..25def26 100644
--- a/src/tmpl-expr.c
+++ b/src/tmpl-expr.c
@@ -152,6 +152,9 @@ tmpl_expr_destroy (TmplExpr *self)
g_clear_pointer (&self->func.list, tmpl_expr_unref);
break;
+ case TMPL_EXPR_NOP:
+ break;
+
default:
g_assert_not_reached ();
}
@@ -399,7 +402,9 @@ tmpl_expr_new_func (char *name,
TmplExprFunc *ret;
g_return_val_if_fail (name != NULL, NULL);
- g_return_val_if_fail (list != NULL, NULL);
+
+ if (list == NULL)
+ list = tmpl_expr_new_nop ();
ret = tmpl_expr_new (TMPL_EXPR_FUNC);
ret->name = name;
@@ -408,3 +413,9 @@ tmpl_expr_new_func (char *name,
return (TmplExpr *)ret;
}
+
+TmplExpr *
+tmpl_expr_new_nop (void)
+{
+ return (TmplExpr *)tmpl_expr_new (TMPL_EXPR_NOP);
+}
diff --git a/src/tmpl-expr.h b/src/tmpl-expr.h
index 61bafe0..a57b0b4 100644
--- a/src/tmpl-expr.h
+++ b/src/tmpl-expr.h
@@ -90,6 +90,8 @@ TMPL_AVAILABLE_IN_3_36
TmplExpr *tmpl_expr_new_func (char *name,
char **symlist,
TmplExpr *list);
+TMPL_AVAILABLE_IN_3_36
+TmplExpr *tmpl_expr_new_nop (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TmplExpr, tmpl_expr_unref)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]