bytecode: propagate `rev_bo` of element
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 27 Apr 2020 21:59:58 +0000 (17:59 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 26 Nov 2020 18:26:58 +0000 (13:26 -0500)
When specializing and executing bytecode.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9fc7381b397acdae02f87e941128ed89e12f7350

liblttng-ust/lttng-filter-interpreter.c
liblttng-ust/lttng-filter-specialize.c

index 14f6a464fc1e4cfbe872f480a3bb70a3ddc23f95..d00179cdd7ff234de83390267a3e9a3de2767fd2 100644 (file)
@@ -454,6 +454,7 @@ static int dynamic_get_index(struct lttng_ctx *ctx,
                stack_top->u.ptr.object_type = gid->elem.type;
                stack_top->u.ptr.type = LOAD_OBJECT;
                stack_top->u.ptr.field = gid->field;
+               stack_top->u.ptr.rev_bo = gid->elem.rev_bo;
                break;
        }
 
index f480f5c4c6a5ec3b9ab57dfcc3667bb02405ef66..947fde29288c222b6f6f384d208907c1c4a8daa4 100644 (file)
@@ -531,6 +531,7 @@ static int specialize_context_lookup(struct lttng_ctx *ctx,
        memset(&gid, 0, sizeof(gid));
        gid.ctx_index = idx;
        gid.elem.type = load->object_type;
+       gid.elem.rev_bo = load->rev_bo;
        gid.field = field;
        data_offset = bytecode_push_data(runtime, &gid,
                __alignof__(gid), sizeof(gid));
@@ -585,6 +586,7 @@ static int specialize_app_context_lookup(struct lttng_ctx **pctx,
        memset(&gid, 0, sizeof(gid));
        gid.ctx_index = idx;
        gid.elem.type = load->object_type;
+       gid.elem.rev_bo = load->rev_bo;
        gid.field = field;
        data_offset = bytecode_push_data(runtime, &gid,
                __alignof__(gid), sizeof(gid));
@@ -665,6 +667,7 @@ static int specialize_payload_lookup(const struct lttng_event_desc *event_desc,
        memset(&gid, 0, sizeof(gid));
        gid.offset = field_offset;
        gid.elem.type = load->object_type;
+       gid.elem.rev_bo = load->rev_bo;
        gid.field = field;
        data_offset = bytecode_push_data(runtime, &gid,
                __alignof__(gid), sizeof(gid));
This page took 0.028284 seconds and 4 git commands to generate.