summaryrefslogtreecommitdiff
path: root/libbindgen/src/codegen/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r--libbindgen/src/codegen/mod.rs13
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, &());
}
}
};