summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gen.rs26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/gen.rs b/src/gen.rs
index 277a8aa1..2c8b0bd2 100644
--- a/src/gen.rs
+++ b/src/gen.rs
@@ -883,24 +883,16 @@ fn cstruct_to_rs(ctx: &mut GenCtx, name: &str, ci: CompInfo) -> Vec<P<ast::Item>
if ci.has_vtable {
let mut vffields = vec![];
- let base_vftable = if !members.is_empty() {
- if let CompMember::Field(ref fi) = members[0] {
- match fi.ty {
- TComp(ref ci2) => {
- let ci2 = ci2.borrow();
- if ci2.has_vtable {
- Some(format!("_vftable_{}", ci2.name))
- } else {
- None
- }
- },
- _ => None
+ let base_vftable = match members.get(0) {
+ Some(&CompMember::Field(FieldInfo { ty: TComp(ref ci2), .. })) => {
+ let ci2 = ci2.borrow();
+ if ci2.has_vtable {
+ Some(format!("_vftable_{}", ci2.name))
+ } else {
+ None
}
- } else {
- None
- }
- } else {
- None
+ },
+ _ => None,
};
if let Some(ref base) = base_vftable {