X-Git-Url: https://git.liburcu.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Ffilter%2Ffilter-visitor-generate-bytecode.c;h=938f7d8a903febf4151183554f179b8bb17c25d8;hp=8bf87d7c6661e84dc4b920c16eb9c8851b393168;hb=5b770521bbf951df78c52ea4c2b7cf9e0dc1bd5e;hpb=e9afa78ade64ab725959e934a55165fc81f37380 diff --git a/src/common/filter/filter-visitor-generate-bytecode.c b/src/common/filter/filter-visitor-generate-bytecode.c index 8bf87d7c6..938f7d8a9 100644 --- a/src/common/filter/filter-visitor-generate-bytecode.c +++ b/src/common/filter/filter-visitor-generate-bytecode.c @@ -19,6 +19,7 @@ #include "common/bytecode/bytecode.h" #include "common/compat/string.h" #include "common/macros.h" +#include "common/string-utils/string-utils.h" #include "filter-ast.h" #include "filter-ir.h" @@ -59,27 +60,6 @@ int visit_node_root(struct filter_parser_ctx *ctx, struct ir_op *node) return bytecode_push(&ctx->bytecode, &insn, 1, sizeof(insn)); } -static -int append_str(char **s, const char *append) -{ - char *old = *s; - char *new; - size_t oldlen = (old == NULL) ? 0 : strlen(old); - size_t appendlen = strlen(append); - - new = calloc(oldlen + appendlen + 1, 1); - if (!new) { - return -ENOMEM; - } - if (oldlen) { - strcpy(new, old); - } - strcat(new, append); - *s = new; - free(old); - return 0; -} - /* * 1: match * 0: no match @@ -97,14 +77,14 @@ int load_expression_legacy_match(const struct ir_load_expression *exp, switch (op->type) { case IR_LOAD_EXPRESSION_GET_CONTEXT_ROOT: *op_type = BYTECODE_OP_GET_CONTEXT_REF; - if (append_str(symbol, "$ctx.")) { + if (strutils_append_str(symbol, "$ctx.")) { return -ENOMEM; } need_dot = false; break; case IR_LOAD_EXPRESSION_GET_APP_CONTEXT_ROOT: *op_type = BYTECODE_OP_GET_CONTEXT_REF; - if (append_str(symbol, "$app.")) { + if (strutils_append_str(symbol, "$app.")) { return -ENOMEM; } need_dot = false; @@ -130,10 +110,10 @@ int load_expression_legacy_match(const struct ir_load_expression *exp, case IR_LOAD_EXPRESSION_LOAD_FIELD: goto end; case IR_LOAD_EXPRESSION_GET_SYMBOL: - if (need_dot && append_str(symbol, ".")) { + if (need_dot && strutils_append_str(symbol, ".")) { return -ENOMEM; } - if (append_str(symbol, op->u.symbol)) { + if (strutils_append_str(symbol, op->u.symbol)) { return -ENOMEM; } break;