diff options
author | Dominik Boehi <dominik.boehi@gmail.com> | 2017-04-08 00:25:11 +0200 |
---|---|---|
committer | Dominik Boehi <dominik.boehi@gmail.com> | 2017-04-08 00:25:11 +0200 |
commit | 89ef8c242666f28b124955431cbe6bb04013f8c3 (patch) | |
tree | 25167ee3cfe118d222e35a9ca2fea6cb53df75a9 /src/codegen/mod.rs | |
parent | aac2f84ea76b6fe321440596a2a5fd93251a3021 (diff) |
Move check for field size outside loop
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r-- | src/codegen/mod.rs | 15 |
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; |