common: compile libfd-tracker as C++
[lttng-tools.git] / src / common / filter / filter-parser.y
index e52f04eb3e6fa8fcc9bce0384f1e7d3442814737..b43561fb327a491bf56e391d2a787acbda350492 100644 (file)
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
-#include <assert.h>
 #include <inttypes.h>
+#include "common/bytecode/bytecode.h"
 #include "filter-ast.h"
 #include "filter-parser.h"
-#include "filter-bytecode.h"
 #include "memstream.h"
 
 #include <common/compat/errno.h>
@@ -44,20 +43,13 @@ do {                                                                \
 } while (0)
 #endif
 
-LTTNG_HIDDEN
 int yydebug;
-LTTNG_HIDDEN
 int filter_parser_debug = 0;
 
-LTTNG_HIDDEN
 int yyparse(struct filter_parser_ctx *parser_ctx, yyscan_t scanner);
-LTTNG_HIDDEN
 int yylex(union YYSTYPE *yyval, yyscan_t scanner);
-LTTNG_HIDDEN
 int yylex_init_extra(struct filter_parser_ctx *parser_ctx, yyscan_t * ptr_yy_globals);
-LTTNG_HIDDEN
 int yylex_destroy(yyscan_t yyparser_ctx);
-LTTNG_HIDDEN
 void yyrestart(FILE * in_str, yyscan_t parser_ctx);
 
 struct gc_string {
@@ -74,7 +66,6 @@ static const char *node_type_to_str[] = {
        [ NODE_UNARY_OP ] = "NODE_UNARY_OP",
 };
 
-LTTNG_HIDDEN
 const char *node_type(struct filter_node *node)
 {
        if (node->type < NR_NODE_TYPES)
@@ -139,7 +130,6 @@ struct gc_string *gc_string_append(struct filter_parser_ctx *parser_ctx,
        return gstr;
 }
 
-LTTNG_HIDDEN
 void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src)
 {
        lvalp->gs = gc_string_alloc(parser_ctx, strlen(src) + 1);
@@ -243,13 +233,11 @@ static void filter_ast_free(struct filter_ast *ast)
        free(ast);
 }
 
-LTTNG_HIDDEN
 int filter_parser_ctx_append_ast(struct filter_parser_ctx *parser_ctx)
 {
        return yyparse(parser_ctx, parser_ctx->scanner);
 }
 
-LTTNG_HIDDEN
 struct filter_parser_ctx *filter_parser_ctx_alloc(FILE *input)
 {
        struct filter_parser_ctx *parser_ctx;
@@ -291,20 +279,23 @@ cleanup_parser_ctx:
        return NULL;
 }
 
-LTTNG_HIDDEN
 void filter_parser_ctx_free(struct filter_parser_ctx *parser_ctx)
 {
        int ret;
 
-       free_strings(&parser_ctx->allocated_strings);
-       filter_ast_free(parser_ctx->ast);
        ret = yylex_destroy(parser_ctx->scanner);
        if (ret)
                fprintf(stderr, "yylex_destroy error\n");
+
+       filter_ast_free(parser_ctx->ast);
+       free_strings(&parser_ctx->allocated_strings);
+       filter_ir_free(parser_ctx);
+       free(parser_ctx->bytecode);
+       free(parser_ctx->bytecode_reloc);
+
        free(parser_ctx);
 }
 
-LTTNG_HIDDEN
 int filter_parser_ctx_create_from_filter_expression(
                const char *filter_expression, struct filter_parser_ctx **ctxp)
 {
@@ -312,8 +303,8 @@ int filter_parser_ctx_create_from_filter_expression(
        struct filter_parser_ctx *ctx = NULL;
        FILE *fmem = NULL;
 
-       assert(filter_expression);
-       assert(ctxp);
+       LTTNG_ASSERT(filter_expression);
+       LTTNG_ASSERT(ctxp);
 
        /*
         * Casting const to non-const, as the underlying function will use it in
@@ -427,7 +418,6 @@ error:
 {
 #include "common/macros.h"
 
-LTTNG_HIDDEN
 void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src);
 }
 
This page took 0.025387 seconds and 4 git commands to generate.