Skip to content

Commit 46e9b82

Browse files
committed
Fix incorrect size being calculated with multi inheritance
1 parent ee74a5f commit 46e9b82

1 file changed

Lines changed: 2 additions & 3 deletions

File tree

generator_scripts/generate_cpp.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ def class_declaration(self, class_obj: ObjectDefinition):
2222
def class_definition(self, class_obj: ObjectDefinition):
2323
current_offset = 0
2424
for (baseclass, offset) in class_obj.get_baseclasses():
25-
current_offset += baseclass.size
25+
current_offset += align_value(baseclass.size, baseclass.calc_parent_alignment())
2626

27-
current_offset = align_value(current_offset, class_obj.calc_parent_alignment())
28-
2927
has_virtuals = class_obj.has_flag('has_virtual_members')
3028
class_alignment = class_obj.calc_alignment()
3129

@@ -49,6 +47,7 @@ def class_definition(self, class_obj: ObjectDefinition):
4947

5048
bitfield_accum = 0
5149
previous_member_alignment = 0
50+
5251
for member in class_obj.get_members():
5352
member_size = member.get_type().get_size()
5453
member_alignment = member.get_type().get_alignment()

0 commit comments

Comments
 (0)