Byte order is only set when packet-based metadata is found.
[babeltrace.git] / formats / ctf / ctf.c
index 098b7eb15d7d4589880243ed7d0ecdc66c7b4152..fd05c0ab2301c293db6aa9728e4d69ea0e1d49f2 100644 (file)
@@ -458,12 +458,13 @@ int packet_metadata(struct ctf_trace *td, FILE *fp)
        if (magic == TSDL_MAGIC) {
                ret = 1;
                td->byte_order = BYTE_ORDER;
+               CTF_TRACE_SET_FIELD(td, byte_order);
        } else if (magic == GUINT32_SWAP_LE_BE(TSDL_MAGIC)) {
                ret = 1;
                td->byte_order = (BYTE_ORDER == BIG_ENDIAN) ?
                                        LITTLE_ENDIAN : BIG_ENDIAN;
+               CTF_TRACE_SET_FIELD(td, byte_order);
        }
-       CTF_TRACE_SET_FIELD(td, byte_order);
 end:
        rewind(fp);
        return ret;
@@ -611,6 +612,8 @@ int ctf_open_trace_metadata_read(struct ctf_trace *td)
                ret = ctf_open_trace_metadata_stream_read(td, &fp, &buf);
                if (ret)
                        goto end_packet_read;
+       } else {
+               td->byte_order = BYTE_ORDER;
        }
 
        scanner = ctf_scanner_alloc(fp);
@@ -639,7 +642,7 @@ int ctf_open_trace_metadata_read(struct ctf_trace *td)
                goto end;
        }
        ret = ctf_visitor_construct_metadata(stdout, 0, &scanner->ast->root,
-                       td, BYTE_ORDER);
+                       td, td->byte_order);
        if (ret) {
                fprintf(stdout, "[error] Error in CTF metadata constructor %d\n", ret);
                goto end;
This page took 0.024249 seconds and 4 git commands to generate.