#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
-#include <babeltrace/compat/uuid.h>
-#include <babeltrace/compat/memstream.h>
+#include <babeltrace/compat/uuid-internal.h>
+#include <babeltrace/compat/memstream-internal.h>
#include <babeltrace/ctf-ir/trace.h>
#include <glib.h>
if (*buf) {
free(*buf);
+ *buf = NULL;
}
end:
BT_HIDDEN
struct ctf_metadata_decoder *ctf_metadata_decoder_create(FILE *err,
- uint64_t clock_class_offset_ns)
+ uint64_t clock_class_offset_ns, const char *name)
{
struct ctf_metadata_decoder *mdec =
g_new0(struct ctf_metadata_decoder, 1);
mdec->err_stream = err;
mdec->visitor = ctf_visitor_generate_ir_create(err,
- clock_class_offset_ns);
+ clock_class_offset_ns, name);
if (!mdec->visitor) {
ctf_metadata_decoder_destroy(mdec);
mdec = NULL;
goto end;
}
+ if (strlen(buf) == 0) {
+ /* An empty metadata packet is OK. */
+ goto end;
+ }
+
/* Convert the real file pointer to a memory file pointer */
fp = bt_fmemopen(buf, strlen(buf), "rb");
close_fp = true;