Skip to content

Commit 2a57d7c

Browse files
committed
Refactor requires_explicit_align
1 parent 8315646 commit 2a57d7c

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

src/codegen/mod.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -1612,10 +1612,13 @@ impl CodeGenerator for CompInfo {
16121612
fields.push(padding_field);
16131613
}
16141614

1615-
if let Some(align_field) =
1616-
layout.and_then(|layout| struct_layout.align_struct(layout))
1617-
{
1618-
fields.push(align_field);
1615+
if let Some(layout) = layout {
1616+
if struct_layout.requires_explicit_align(layout) {
1617+
let ty = helpers::blob(Layout::new(0, layout.align));
1618+
fields.push(quote! {
1619+
pub __bindgen_align: #ty ,
1620+
});
1621+
}
16191622
}
16201623
}
16211624

src/codegen/struct_layout.rs

+2-11
Original file line numberDiff line numberDiff line change
@@ -288,18 +288,9 @@ impl<'a> StructLayoutTracker<'a> {
288288
}
289289
}
290290

291-
pub fn align_struct(&self, layout: Layout) -> Option<quote::Tokens> {
292-
if self.max_field_align < layout.align &&
291+
pub fn requires_explicit_align(&self, layout: Layout) -> bool {
292+
self.max_field_align < layout.align &&
293293
layout.align <= mem::size_of::<*mut ()>()
294-
{
295-
let ty = helpers::blob(Layout::new(0, layout.align));
296-
297-
Some(quote! {
298-
pub __bindgen_align: #ty ,
299-
})
300-
} else {
301-
None
302-
}
303294
}
304295

305296
fn padding_bytes(&self, layout: Layout) -> usize {

0 commit comments

Comments
 (0)