if (unlikely(ret))
goto error;
/* lookup event id */
- integer_definition = lookup_integer(&stream->stream_event_header->p, "id", FALSE);
+ integer_definition = bt_lookup_integer(&stream->stream_event_header->p, "id", FALSE);
if (integer_definition) {
id = integer_definition->value._unsigned;
} else {
}
}
- variant = lookup_variant(&stream->stream_event_header->p, "v");
+ variant = bt_lookup_variant(&stream->stream_event_header->p, "v");
if (variant) {
- integer_definition = lookup_integer(variant, "id", FALSE);
+ integer_definition = bt_lookup_integer(variant, "id", FALSE);
if (integer_definition) {
id = integer_definition->value._unsigned;
}
/* lookup timestamp */
stream->has_timestamp = 0;
- integer_definition = lookup_integer(&stream->stream_event_header->p, "timestamp", FALSE);
+ integer_definition = bt_lookup_integer(&stream->stream_event_header->p, "timestamp", FALSE);
if (integer_definition) {
ctf_update_timestamp(stream, integer_definition);
stream->has_timestamp = 1;
} else {
if (variant) {
- integer_definition = lookup_integer(variant, "timestamp", FALSE);
+ integer_definition = bt_lookup_integer(variant, "timestamp", FALSE);
if (integer_definition) {
ctf_update_timestamp(stream, integer_definition);
stream->has_timestamp = 1;
char **buf)
{
FILE *in, *out;
- size_t size;
+ size_t size, buflen;
int ret;
in = *fp;
perror("Error in fclose");
}
/* open for reading */
- *fp = babeltrace_fmemopen(*buf, strlen(*buf), "rb");
+ buflen = strlen(*buf);
+ if (!buflen) {
+ *fp = NULL;
+ return -ENODATA;
+ }
+ *fp = babeltrace_fmemopen(*buf, buflen, "rb");
if (!*fp) {
perror("Metadata fmemopen");
return -errno;
if (packet_metadata(td, fp)) {
ret = ctf_open_trace_metadata_stream_read(td, &fp, &buf);
- if (ret)
+ if (ret) {
+ /* Warn about empty metadata */
+ fprintf(stderr, "[warning] Empty metadata.\n");
goto end_packet_read;
+ }
} else {
unsigned int major, minor;
ssize_t nr_items;