Skip to content

Commit e6cd5b3

Browse files
ctf: Allow structs to have ctf2 data
Change-Id: Ie35533f33a482aff519f9472b0a34b088be1506e Signed-off-by: Matthew Khouzam <[email protected]>
1 parent 8bdd46e commit e6cd5b3

File tree

1 file changed

+10
-2
lines changed
  • ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/metadata/tsdl/struct

1 file changed

+10
-2
lines changed

ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/metadata/tsdl/struct/StructParser.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,17 @@ public StructDeclaration parse(ICTFMetadataNode struct, ICommonTreeParserParamet
206206
structAlign = minimumAlignment.getAsLong();
207207
}
208208
JsonElement memberClasses = memberNode.getFieldClass().getAsJsonObject().get(JsonMetadataStrings.MEMBER_CLASSES);
209-
if (memberClasses != null) {
209+
if (memberClasses != null && memberClasses.isJsonArray()) {
210210
hasBody = true;
211-
structBody = struct;
211+
for (JsonElement memberElement : memberClasses.getAsJsonArray()) {
212+
if (memberElement.isJsonObject()) {
213+
String name = memberElement.getAsJsonObject().get(JsonMetadataStrings.NAME).getAsString();
214+
JsonElement fieldClass = memberElement.getAsJsonObject().get(JsonMetadataStrings.FIELD_CLASS);
215+
JsonStructureFieldMemberMetadataNode childNode = new JsonStructureFieldMemberMetadataNode(memberNode, "", "", name, fieldClass.getAsJsonObject()); //$NON-NLS-1$ //$NON-NLS-2$
216+
memberNode.addChild(childNode);
217+
}
218+
}
219+
structBody = memberNode;
212220
}
213221
}
214222
}

0 commit comments

Comments
 (0)