Allow NULL clock name
[babeltrace.git] / formats / ctf / ir / clock.c
index 9256bc1f26f58ef5cb4f04a8ca9a92d32dc364e7..738f2d80977a6a0eb0ee5b7195594493354b08a4 100644 (file)
@@ -38,28 +38,21 @@ static
 void bt_ctf_clock_destroy(struct bt_object *obj);
 
 BT_HIDDEN
-struct bt_ctf_clock *_bt_ctf_clock_create(void)
+bool bt_ctf_clock_is_valid(struct bt_ctf_clock *clock)
 {
-       struct bt_ctf_clock *clock = g_new0(
-               struct bt_ctf_clock, 1);
-
-       if (!clock) {
-               goto end;
-       }
-
-       clock->precision = 1;
-       clock->frequency = 1000000000;
-       bt_object_init(clock, bt_ctf_clock_destroy);
-end:
-       return clock;
+       return clock && clock->name;
 }
 
-BT_HIDDEN
 int bt_ctf_clock_set_name(struct bt_ctf_clock *clock,
                const char *name)
 {
        int ret = 0;
 
+       if (!clock || clock->frozen) {
+               ret = -1;
+               goto end;
+       }
+
        if (bt_ctf_validate_identifier(name)) {
                ret = -1;
                goto end;
@@ -82,16 +75,21 @@ end:
 struct bt_ctf_clock *bt_ctf_clock_create(const char *name)
 {
        int ret;
-       struct bt_ctf_clock *clock = NULL;
+       struct bt_ctf_clock *clock = g_new0(struct bt_ctf_clock, 1);
 
-       clock = _bt_ctf_clock_create();
        if (!clock) {
                goto error;
        }
 
-       ret = bt_ctf_clock_set_name(clock, name);
-       if (ret) {
-               goto error;
+       clock->precision = 1;
+       clock->frequency = 1000000000;
+       bt_object_init(clock, bt_ctf_clock_destroy);
+
+       if (name) {
+               ret = bt_ctf_clock_set_name(clock, name);
+               if (ret) {
+                       goto error;
+               }
        }
 
        ret = bt_uuid_generate(clock->uuid);
This page took 0.024234 seconds and 4 git commands to generate.