X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-visitor-generate-ir.c;h=e1cab3468686691ecae04fbd680bf7bf4f174182;hp=eec78fcae99ab68a866ce09d078811dfaf1a2d52;hb=a788a3ed13e6caf984c88796b045727b820fdbc0;hpb=d00c599e39ae45ec7c8e12e6bac6b5e58f08f817 diff --git a/src/lib/lttng-ctl/filter/filter-visitor-generate-ir.c b/src/lib/lttng-ctl/filter/filter-visitor-generate-ir.c index eec78fcae..e1cab3468 100644 --- a/src/lib/lttng-ctl/filter/filter-visitor-generate-ir.c +++ b/src/lib/lttng-ctl/filter/filter-visitor-generate-ir.c @@ -30,6 +30,8 @@ #include "filter-parser.h" #include "filter-ir.h" +#include + static struct ir_op *generate_ir_recursive(struct filter_parser_ctx *ctx, struct filter_node *node, enum ir_side side); @@ -46,9 +48,11 @@ struct ir_op *make_op_root(struct ir_op *child, enum ir_side side) case IR_DATA_UNKNOWN: default: fprintf(stderr, "[error] Unknown root child data type\n"); + free(op); return NULL; case IR_DATA_STRING: fprintf(stderr, "[error] String cannot be root data type\n"); + free(op); return NULL; case IR_DATA_NUMERIC: case IR_DATA_FIELD_REF: @@ -753,14 +757,14 @@ struct ir_op *generate_ir_recursive(struct filter_parser_ctx *ctx, return 0; } -__attribute__((visibility("hidden"))) +LTTNG_HIDDEN void filter_ir_free(struct filter_parser_ctx *ctx) { filter_free_ir_recursive(ctx->ir_root); ctx->ir_root = NULL; } -__attribute__((visibility("hidden"))) +LTTNG_HIDDEN int filter_visitor_ir_generate(struct filter_parser_ctx *ctx) { struct ir_op *op;