ir: bt_ctf_event_set_clock_value(): validate clock value's class
[babeltrace.git] / lib / ctf-ir / trace.c
index 1b239fa3f457f1c3f5dbb30e72791bbb6bcfe153..999270882fbe7a42221e23686f5d4625e2013825 100644 (file)
@@ -389,7 +389,6 @@ int bt_ctf_trace_add_clock_class(struct bt_ctf_trace *trace,
                struct bt_ctf_clock_class *clock_class)
 {
        int ret = 0;
-       struct search_query query = { .value = clock_class, .found = 0 };
 
        if (!trace || !bt_ctf_clock_class_is_valid(clock_class)) {
                ret = -1;
@@ -397,8 +396,7 @@ int bt_ctf_trace_add_clock_class(struct bt_ctf_trace *trace,
        }
 
        /* Check for duplicate clock classes */
-       g_ptr_array_foreach(trace->clocks, value_exists, &query);
-       if (query.found) {
+       if (bt_ctf_trace_has_clock_class(trace, clock_class)) {
                ret = -1;
                goto end;
        }
@@ -805,6 +803,19 @@ end:
        return clock_class;
 }
 
+BT_HIDDEN
+bool bt_ctf_trace_has_clock_class(struct bt_ctf_trace *trace,
+               struct bt_ctf_clock_class *clock_class)
+{
+       struct search_query query = { .value = clock_class, .found = 0 };
+
+       assert(trace);
+       assert(clock_class);
+
+       g_ptr_array_foreach(trace->clocks, value_exists, &query);
+       return query.found;
+}
+
 BT_HIDDEN
 const char *get_byte_order_string(enum bt_ctf_byte_order byte_order)
 {
This page took 0.022944 seconds and 4 git commands to generate.