diff options
author | Flier Lu <flier.lu@gmail.com> | 2017-02-08 22:08:38 +0800 |
---|---|---|
committer | Flier Lu <flier.lu@gmail.com> | 2017-02-08 23:04:44 +0800 |
commit | e08072a1c9343c9c513e059a8a31ee2d1af129a9 (patch) | |
tree | d6a30e66d8ed288ed82b422f0132da5fe850d59a /src/codegen/struct_layout.rs | |
parent | 8264afa875d686688680123859f8820e19c8028c (diff) |
check layout align before padding bytes
Diffstat (limited to 'src/codegen/struct_layout.rs')
-rw-r--r-- | src/codegen/struct_layout.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/codegen/struct_layout.rs b/src/codegen/struct_layout.rs index 98640570..f8a88bc2 100644 --- a/src/codegen/struct_layout.rs +++ b/src/codegen/struct_layout.rs @@ -89,9 +89,12 @@ impl<'a, 'ctx> StructLayoutTracker<'a, 'ctx> { Some(offset) if offset / 8 > self.latest_offset => { (offset / 8 - self.latest_offset, true) } - _ => { + _ if field_layout.align != 0 => { (self.padding_bytes(field_layout), (self.latest_offset % field_layout.align) != 0) } + _ => { + (0, false) + } }; self.latest_offset += padding_bytes; |