summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/codegen/mod.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 8151a676..c203795a 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -913,19 +913,20 @@ fn flush_bitfields<'a, I>(ctx: &BindgenContext,
.pub_()
.build_ty(field_ty.clone());
+ let field_int_ty = match field_layout.size {
+ 8 => quote_ty!(ctx.ext_cx(), u64),
+ 4 => quote_ty!(ctx.ext_cx(), u32),
+ 2 => quote_ty!(ctx.ext_cx(), u16),
+ 1 => quote_ty!(ctx.ext_cx(), u8),
+ _ => return field
+ };
+
for (name, offset, width, bitfield_ty, bitfield_layout) in bitfields {
let prefix = ctx.trait_prefix();
let getter_name = bitfield_getter_name(ctx, parent, name);
let setter_name = bitfield_setter_name(ctx, parent, name);
let field_ident = ctx.ext_cx().ident_of(field_name);
- let field_int_ty = match field_layout.size {
- 8 => quote_ty!(ctx.ext_cx(), u64),
- 4 => quote_ty!(ctx.ext_cx(), u32),
- 2 => quote_ty!(ctx.ext_cx(), u16),
- 1 => quote_ty!(ctx.ext_cx(), u8),
- _ => return field
- };
let bitfield_int_ty = BlobTyBuilder::new(bitfield_layout).build();
let mask: usize = ((1usize << width) - 1usize) << offset;