X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fclock.c;h=45ed14762512d72dd5cd4b23ca396da7140e6907;hb=e1ae7645ef265eb69a0a500c8f4d6620c50543da;hp=f0213868c3ad32a4ab9b1fb17f244a562ceabd22;hpb=4c426c1774cb217fabc9c0b5d9947417919b852a;p=babeltrace.git diff --git a/formats/ctf/ir/clock.c b/formats/ctf/ir/clock.c index f0213868..45ed1476 100644 --- a/formats/ctf/ir/clock.c +++ b/formats/ctf/ir/clock.c @@ -26,7 +26,6 @@ * SOFTWARE. */ -#include #include #include #include @@ -47,7 +46,6 @@ struct bt_ctf_clock *_bt_ctf_clock_create(void) clock->precision = 1; clock->frequency = 1000000000; - uuid_generate(clock->uuid); bt_ctf_ref_init(&clock->ref_count); end: return clock; @@ -65,14 +63,15 @@ int bt_ctf_clock_set_name(struct bt_ctf_clock *clock, } if (clock->name) { - g_string_free(clock->name, TRUE); + g_string_assign(clock->name, name); + } else { + clock->name = g_string_new(name); + if (!clock->name) { + ret = -1; + goto end; + } } - clock->name = g_string_new(name); - if (!clock->name) { - ret = -1; - goto end; - } end: return ret; } @@ -92,6 +91,12 @@ struct bt_ctf_clock *bt_ctf_clock_create(const char *name) goto error_destroy; } + ret = babeltrace_uuid_generate(clock->uuid); + if (ret) { + goto error_destroy; + } + + clock->uuid_set = 1; return clock; error_destroy: bt_ctf_clock_destroy(&clock->ref_count); @@ -284,7 +289,7 @@ const unsigned char *bt_ctf_clock_get_uuid(struct bt_ctf_clock *clock) { const unsigned char *ret; - if (!clock) { + if (!clock || !clock->uuid_set) { ret = NULL; goto end; } @@ -298,12 +303,13 @@ int bt_ctf_clock_set_uuid(struct bt_ctf_clock *clock, const unsigned char *uuid) { int ret = 0; - if (!clock || !uuid) { + if (!clock || !uuid || clock->frozen) { ret = -1; goto end; } memcpy(clock->uuid, uuid, sizeof(uuid_t)); + clock->uuid_set = 1; end: return ret; }