diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-11-22 13:06:40 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-22 13:06:40 -0600 |
commit | dad1fd3ca15d116f422a1db91c9796c22fd38e40 (patch) | |
tree | e0b8e4b4d835272008a7bfcedeba3a74c2bc3cdb /libbindgen/src/codegen/mod.rs | |
parent | 5bac90421462446aa13fba915b4f518a5170c4e8 (diff) | |
parent | 1cdec58024f260cfe92917aef783145b528663c6 (diff) |
Auto merge of #302 - emilio:whitelist, r=fitzgen
ir: Rework how we discover children of modules.
r? @fitzgen
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, &()); } } }; |