Fix: check if event enabled for bytecode-less events
[lttng-ust.git] / liblttng-ust / lttng-events.c
index 95082ceda6fadd21827db61cde7f56945c3dcdcf..5e6c90cbd8383b2324e5cb73ed9db74395f993f9 100644 (file)
@@ -1379,7 +1379,7 @@ void lttng_session_sync_enablers(struct lttng_session *session)
        cds_list_for_each_entry(event, &session->events_head, node) {
                struct lttng_enabler_ref *enabler_ref;
                struct lttng_bytecode_runtime *runtime;
-               int enabled = 0;
+               int enabled = 0, has_enablers_without_bytecode = 0;
 
                /* Enable events */
                cds_list_for_each_entry(enabler_ref,
@@ -1391,12 +1391,23 @@ void lttng_session_sync_enablers(struct lttng_session *session)
                }
                event->enabled = enabled;
 
+               /* Check if has enablers without bytecode enabled */
+               cds_list_for_each_entry(enabler_ref,
+                               &event->enablers_ref_head, node) {
+                       if (enabler_ref->ref->enabled
+                                       && cds_list_empty(&enabler_ref->ref->filter_bytecode_head)) {
+                               has_enablers_without_bytecode = 1;
+                               break;
+                       }
+               }
+               event->has_enablers_without_bytecode =
+                       has_enablers_without_bytecode;
+
                /* Enable filters */
                cds_list_for_each_entry(runtime,
                                &event->bytecode_runtime_head, node) {
                        lttng_filter_sync_state(runtime);
                }
-
        }
 }
 
This page took 0.024196 seconds and 4 git commands to generate.