[template-glib] expr: fix destroy of user function calls



commit e69fed3c336c6b75be43a4f1444d96d679f00d09
Author: Christian Hergert <chergert redhat com>
Date:   Wed May 4 13:14:19 2022 -0700

    expr: fix destroy of user function calls
    
    This fixes an incorrect unref we couldn't hit before because we didn't
    have user functions working. But in particular USER_FN_CALL does not use
    the SIMPLE expr node as it has it's own.

 src/tmpl-expr.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/src/tmpl-expr.c b/src/tmpl-expr.c
index 18008b2..f8ff635 100644
--- a/src/tmpl-expr.c
+++ b/src/tmpl-expr.c
@@ -79,7 +79,6 @@ tmpl_expr_destroy (TmplExpr *self)
     case TMPL_EXPR_NE:
     case TMPL_EXPR_SUB:
     case TMPL_EXPR_UNARY_MINUS:
-    case TMPL_EXPR_USER_FN_CALL:
     case TMPL_EXPR_AND:
     case TMPL_EXPR_OR:
     case TMPL_EXPR_INVERT_BOOLEAN:
@@ -88,6 +87,11 @@ tmpl_expr_destroy (TmplExpr *self)
       g_clear_pointer (&self->simple.right, tmpl_expr_unref);
       break;
 
+    case TMPL_EXPR_USER_FN_CALL:
+      g_clear_pointer (&self->user_fn_call.symbol, g_free);
+      g_clear_pointer (&self->user_fn_call.params, tmpl_expr_unref);
+      break;
+
     case TMPL_EXPR_GETATTR:
       g_clear_pointer (&self->getattr.attr, g_free);
       g_clear_pointer (&self->getattr.left, tmpl_expr_unref);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]