removing OFPadMembers before calc_lengths is called
diff --git a/loxi_ir/ir.py b/loxi_ir/ir.py
index 25804c1..583cd8f 100644
--- a/loxi_ir/ir.py
+++ b/loxi_ir/ir.py
@@ -441,15 +441,22 @@
superclass_name = None
superclass = None
+ ofc_members = []
+ for m in orig_fe.members:
+ if not isinstance(m, frontend_ir.OFDataMember) and not isinstance(m, frontend_ir.OFPadMember):
+ ofc_members.append(m)
+
fe = frontend_ir.OFClass(
name=name,
superclass=superclass_name,
- members=[m for m in orig_fe.members if not isinstance(m, frontend_ir.OFDataMember)],
+ members=ofc_members,
virtual=orig_fe.virtual,
params={})
+ print fe.members
base_length, is_fixed_length, member_lengths = \
ir_offset.calc_lengths(version, fe, name_classes, name_enums)
+ print fe.virtual, is_fixed_length
assert fe.virtual or is_fixed_length
members = []
@@ -460,10 +467,6 @@
members.extend( build_member(c, fe_member, member_lengths[fe_member])
for fe_member in fe.members)
- if not 'bsn' in name:
- for m in c.members:
- if isinstance(m, OFPadMember): c.members.remove(m)
-
name_classes[name] = c
return c