From be018f151e598d1916b8bbe265e3dff7e47220ca Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Mon, 20 Oct 2014 12:11:58 -0400 Subject: [PATCH] Don't automatically generate a clock UUID in _bt_ctf_clock_create MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit While the public clock constructor still generates a UUID, it should not be done when creating a clock during TSDL metadata parsing. This makes it possible to use bt_ctf_clock_get_uuid to check if a UUID has already been set during clock definition parsing. Signed-off-by: Jérémie Galarneau --- formats/ctf/ir/clock.c | 13 +++++++++---- include/babeltrace/ctf-ir/clock-internal.h | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/formats/ctf/ir/clock.c b/formats/ctf/ir/clock.c index f0213868..195f8371 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; @@ -92,6 +90,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 +288,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 +302,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; } diff --git a/include/babeltrace/ctf-ir/clock-internal.h b/include/babeltrace/ctf-ir/clock-internal.h index 9e800ac5..f876cd30 100644 --- a/include/babeltrace/ctf-ir/clock-internal.h +++ b/include/babeltrace/ctf-ir/clock-internal.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include struct bt_ctf_clock { struct bt_ctf_ref ref_count; @@ -44,6 +44,7 @@ struct bt_ctf_clock { uint64_t offset; /* Offset in ticks */ uint64_t time; /* Current clock value */ uuid_t uuid; + int uuid_set; int absolute; /* * A clock's properties can't be modified once it is added to a stream -- 2.34.1