X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=probes%2Flttng-events.h;h=bf2e2b9d1df5364cc3213fc70345c38f21d7fd5a;hb=7f88af108855c75c23e226f3cf4da4b95fc08530;hp=96062042d038ab4303fd9f2b71fce4401ea33e42;hpb=abc0cb0becbacba12ae7f5bf89230af1998cacdd;p=lttng-modules.git diff --git a/probes/lttng-events.h b/probes/lttng-events.h index 96062042..bf2e2b9d 100644 --- a/probes/lttng-events.h +++ b/probes/lttng-events.h @@ -744,6 +744,11 @@ __assign_##dest##_3: \ #define _TP_SESSION_CHECK(session, csession) 1 #endif /* TP_SESSION_CHECK */ +/* + * __dynamic_len array length is twice the number of fields due to + * __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2(), which are the + * worse case, needing 2 entries per field. + */ #undef DECLARE_EVENT_CLASS #define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ static void __event_probe__##_name(void *__data, _proto) \ @@ -753,7 +758,7 @@ static void __event_probe__##_name(void *__data, _proto) \ struct lib_ring_buffer_ctx __ctx; \ size_t __event_len, __event_align; \ size_t __dynamic_len_idx = 0; \ - size_t __dynamic_len[ARRAY_SIZE(__event_fields___##_name)]; \ + size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)]; \ struct __event_typemap__##_name __typemap; \ int __ret; \ \