diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-11-22 20:01:29 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-11-22 20:01:29 +0100 |
commit | 1cdec58024f260cfe92917aef783145b528663c6 (patch) | |
tree | e0b8e4b4d835272008a7bfcedeba3a74c2bc3cdb /libbindgen/src/codegen/mod.rs | |
parent | 2fa8409d1652b5f81c01d8ccb53bc30202249d95 (diff) |
ir: Rework how we discover children of modules.
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r-- | libbindgen/src/codegen/mod.rs | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/libbindgen/src/codegen/mod.rs b/libbindgen/src/codegen/mod.rs index ba52fa83..ad9ac2de 100644 --- a/libbindgen/src/codegen/mod.rs +++ b/libbindgen/src/codegen/mod.rs @@ -270,16 +270,11 @@ impl CodeGenerator for Module { debug!("<Module as CodeGenerator>::codegen: item = {:?}", item); let codegen_self = |result: &mut CodegenResult, found_any: &mut bool| { - // FIXME: This could be less expensive, I guess. - for &whitelisted_item in whitelisted_items { - if whitelisted_item == item.id() { - continue; - } - - let child = ctx.resolve_item(whitelisted_item); - if child.parent_id() == item.id() { + for child in self.children() { + if whitelisted_items.contains(child) { *found_any = true; - child.codegen(ctx, result, whitelisted_items, &()); + ctx.resolve_item(*child) + .codegen(ctx, result, whitelisted_items, &()); } } }; |