X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-filter-interpreter.c;h=d9605cb2a068f4e3a187f27e56882e6d5256ada4;hb=42150a01aaf5697974754ff89d69d91dc75c326b;hp=c288cc024ad90bcbc58f02a849aa074632f04ec3;hpb=79150a4903b5f31695fcd1d9655555ba6dc4bfa4;p=lttng-modules.git diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c index c288cc02..d9605cb2 100644 --- a/lttng-filter-interpreter.c +++ b/lttng-filter-interpreter.c @@ -21,8 +21,11 @@ */ #include +#include -#include "lttng-filter.h" +#include + +LTTNG_STACK_FRAME_NON_STANDARD(lttng_filter_interpret_bytecode); /* * get_char should be called with page fault handler disabled if it is expected @@ -119,21 +122,16 @@ int stack_strcmp(struct estack *stack, int top, const char *cmp_type) } } if (unlikely(char_ax == '\0')) { - if (char_bx == '\0') { - diff = 0; - break; - } else { - if (estack_bx(stack, top)->u.s.literal) { - ret = parse_char(estack_bx(stack, top), - &char_bx, &offset_bx); - if (ret == -1) { - diff = 0; - break; - } + if (estack_bx(stack, top)->u.s.literal) { + ret = parse_char(estack_bx(stack, top), + &char_bx, &offset_bx); + if (ret == -1) { + diff = 0; + break; } - diff = 1; - break; } + diff = 1; + break; } if (estack_bx(stack, top)->u.s.literal) { ret = parse_char(estack_bx(stack, top), @@ -818,7 +816,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data, dbg_printk("load field ref offset %u type user string\n", ref->offset); estack_push(stack, top, ax, bx); - estack_ax(stack, top)->u.s.str = + estack_ax(stack, top)->u.s.user_str = *(const char * const *) &filter_stack_data[ref->offset]; if (unlikely(!estack_ax(stack, top)->u.s.str)) { dbg_printk("Filter warning: loading a NULL string.\n"); @@ -843,7 +841,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data, estack_push(stack, top, ax, bx); estack_ax(stack, top)->u.s.seq_len = *(unsigned long *) &filter_stack_data[ref->offset]; - estack_ax(stack, top)->u.s.str = + estack_ax(stack, top)->u.s.user_str = *(const char **) (&filter_stack_data[ref->offset + sizeof(unsigned long)]); if (unlikely(!estack_ax(stack, top)->u.s.str)) {