move header class generation into legacy codepath
diff --git a/loxi_front_end/frontend.py b/loxi_front_end/frontend.py
index 7d0424f..ab98c26 100644
--- a/loxi_front_end/frontend.py
+++ b/loxi_front_end/frontend.py
@@ -63,12 +63,6 @@
members = [create_member(m_ast) for m_ast in decl_ast[2]]
ofclass = OFClass(name=decl_ast[1], members=members)
ofinput.classes.append(ofclass)
- if ofclass.name in type_maps.inheritance_map:
- # Clone class into header class and add to list
- # TODO figure out if these are actually used
- ofclass_header = OFClass(ofclass.name + '_header',
- copy.deepcopy(members))
- ofinput.classes.append(ofclass_header)
if decl_ast[0] == 'enum':
enum = OFEnum(name=decl_ast[1], values=[(x[0], x[1]) for x in decl_ast[2]])
ofinput.enums.append(enum)
diff --git a/loxigen.py b/loxigen.py
index ddb2616..5787791 100755
--- a/loxigen.py
+++ b/loxigen.py
@@ -463,6 +463,15 @@
lengths of struct members and the set of list and action_id types.
"""
+ # Generate header classes for inheritance parents
+ for wire_version, ordered_classes in of_g.ordered_classes.items():
+ classes = versions[of_g.of_version_wire2name[wire_version]]['classes']
+ for cls in ordered_classes:
+ if cls in type_maps.inheritance_map:
+ new_cls = cls + '_header'
+ of_g.ordered_classes[wire_version].append(new_cls)
+ classes[new_cls] = classes[cls]
+
# Generate action_id classes for OF 1.3
for wire_version, ordered_classes in of_g.ordered_classes.items():
if not wire_version in [of_g.VERSION_1_3]: