* construction of the
* intermediate representation.
*/
- return -EINTR;
+ trace->field_mask = 0;
+ CTF_TRACE_SET_FIELD(trace, byte_order);
+ ret = -EINTR;
+ goto error;
}
}
CTF_TRACE_SET_FIELD(trace, byte_order);
return 0;
error:
- if (trace->packet_header_decl)
+ if (trace->packet_header_decl) {
declaration_unref(&trace->packet_header_decl->p);
+ trace->packet_header_decl = NULL;
+ }
g_ptr_array_free(trace->streams, TRUE);
free_declaration_scope(trace->declaration_scope);
trace->declaration_scope = NULL;
/* byte order changed while creating types, retry. */
if (ret == -EINTR) {
- trace->field_mask = 0;
goto restart;
}
return ret;