X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Fmetadata%2Fctf-visitor-generate-io-struct.c;h=9a5cda096f321509527492b24d0510dc613dda4b;hp=ecd9ffd9217b88873e6523ebd4b8027e4d47a5cb;hb=b4c19c1e0a905f94146e6f319218fb16b7ebbca1;hpb=9ecfc3e6b596858f772e09a78832526ba808638a diff --git a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c index ecd9ffd9..9a5cda09 100644 --- a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c +++ b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c @@ -1887,17 +1887,19 @@ int ctf_trace_declaration_visit(FILE *fd, int depth, struct ctf_node *node, stru } CTF_TRACE_SET_FIELD(trace, minor); } else if (!strcmp(left, "uuid")) { - if (CTF_TRACE_FIELD_IS_SET(trace, uuid)) { - fprintf(fd, "[error] %s: uuid already declared in trace declaration\n", __func__); - ret = -EPERM; - goto error; - } + uuid_t uuid; ret = get_unary_uuid(&node->u.ctf_expression.right, &trace->uuid); if (ret) { fprintf(fd, "[error] %s: unexpected unary expression for trace uuid\n", __func__); ret = -EINVAL; goto error; } + if (CTF_TRACE_FIELD_IS_SET(trace, uuid) + && uuid_compare(uuid, trace->uuid)) { + fprintf(fd, "[error] %s: uuid mismatch\n", __func__); + ret = -EPERM; + goto error; + } CTF_TRACE_SET_FIELD(trace, uuid); } else if (!strcmp(left, "byte_order")) { struct ctf_node *right;