X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-visitor-set-parent.c;h=458688da44a13b4d924be20162b7d15e46f575eb;hp=fd895f6f1e8003b45f591f421d38b5b1aaa08d84;hb=1d8d032800b64945d90c7b5a7b8e9316e733a4b1;hpb=d00c599e39ae45ec7c8e12e6bac6b5e58f08f817 diff --git a/src/lib/lttng-ctl/filter/filter-visitor-set-parent.c b/src/lib/lttng-ctl/filter/filter-visitor-set-parent.c index fd895f6f1..458688da4 100644 --- a/src/lib/lttng-ctl/filter/filter-visitor-set-parent.c +++ b/src/lib/lttng-ctl/filter/filter-visitor-set-parent.c @@ -29,11 +29,18 @@ #include "filter-ast.h" #include "filter-parser.h" +#include + static int update_child(struct filter_node *parent, struct filter_node *old_child, struct filter_node *new_child) { + if (!parent) { + fprintf(stderr, "[error] %s: NULL parent\n", __func__); + return -EINVAL; + } + switch (parent->type) { case NODE_UNKNOWN: default: @@ -91,7 +98,8 @@ int recursive_visit_set_parent(struct filter_node *node, return -EINVAL; case AST_EXP_NESTED: return recursive_visit_set_parent(node->u.expression.u.child, node); - case AST_EXP_IDENTIFIER: + case AST_EXP_IDENTIFIER: /* fall-through */ + case AST_EXP_GLOBAL_IDENTIFIER: { struct filter_node *orig_node = node; @@ -100,7 +108,8 @@ int recursive_visit_set_parent(struct filter_node *node, prev = node->u.expression.prev; if (prev->type != NODE_EXPRESSION || - prev->u.expression.type != AST_EXP_IDENTIFIER) { + (prev->u.expression.type != AST_EXP_IDENTIFIER + && prev->u.expression.type != AST_EXP_GLOBAL_IDENTIFIER)) { fprintf(stderr, "[error] %s: expecting identifier before link\n", __func__); return -EINVAL; } @@ -133,7 +142,7 @@ int recursive_visit_set_parent(struct filter_node *node, return 0; } -__attribute__((visibility("hidden"))) +LTTNG_HIDDEN int filter_visitor_set_parent(struct filter_parser_ctx *ctx) { return recursive_visit_set_parent(&ctx->ast->root, NULL);