If there's any empty structure in the original trace, keep it (create
an empty trace IR structure field class too).
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
uint64_t i;
bool has_immediate_member_in_ir = false;
+ /*
+ * If the structure field class has no members at all, then it
+ * was an empty structure in the beginning, so leave it existing
+ * and empty.
+ */
+ if (fc->members->len == 0) {
+ has_immediate_member_in_ir = true;
+ goto end;
+ }
+
for (i = 0; i < fc->members->len; i++) {
struct ctf_named_field_class *named_fc =
ctf_field_class_struct_borrow_member_by_index(fc, i);
{
struct ctf_field_class_struct *struct_fc = (void *) fc;
+ /*
+ * Make it part of IR if it's empty because it was
+ * originally empty.
+ */
+ if (struct_fc->members->len == 0) {
+ fc->in_ir = true;
+ }
+
/* Reverse order */
for (i = (int64_t) struct_fc->members->len - 1; i >= 0; i--) {
struct ctf_named_field_class *named_fc =