summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e190492)
Two field accounting issues were introduced by
commit
218deb69baab "tracepoint: Refactor representation of nested
types" which affect the dynamic types used by Java application contexts.
The structure types should account 1 for the structure per se, in
addition to the nested fields.
The atype_dynamic includes an implicit enumeration, which now has two
fields instead of 1.
This was causing memory corruption issues in the lttng-ust-java-tests.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
return 1;
case atype_struct:
return count_fields_recursive(lt->u.legacy._struct.nr_fields,
return 1;
case atype_struct:
return count_fields_recursive(lt->u.legacy._struct.nr_fields,
- lt->u.legacy._struct.fields);
+ lt->u.legacy._struct.fields) + 1;
case atype_enum_nestable:
return count_one_type(lt->u.enum_nestable.container_type) + 1;
case atype_array_nestable:
case atype_enum_nestable:
return count_one_type(lt->u.enum_nestable.container_type) + 1;
case atype_array_nestable:
return count_one_type(lt->u.sequence_nestable.elem_type) + 1;
case atype_struct_nestable:
return count_fields_recursive(lt->u.struct_nestable.nr_fields,
return count_one_type(lt->u.sequence_nestable.elem_type) + 1;
case atype_struct_nestable:
return count_fields_recursive(lt->u.struct_nestable.nr_fields,
- lt->u.struct_nestable.fields);
+ lt->u.struct_nestable.fields) + 1;
- * One field for enum, one field for variant, and
+ * Two fields for enum, one field for variant, and
* one field per choice.
*/
* one field per choice.
*/
- return count_fields_recursive(nr_choices, choices) + 2;
+ return count_fields_recursive(nr_choices, choices) + 3;