var d = ((DelegateType) resolved_type).delegate_symbol;
if (!(d.name == "DestroyNotify" && d.parent_symbol.name == "GLib")) {
info.param.set_attribute_string ("CCode", "scope", "async");
- info.param.variable_type.value_owned = true;
+ info.param.variable_type.value_owned = (info.closure_idx != -1 && info.destroy_idx != -1);
}
}
+ } else {
+ var resolved_type = info.param.variable_type;
+ if (resolved_type is DelegateType) {
+ info.param.variable_type.value_owned = (info.closure_idx != -1 && info.destroy_idx != -1);
+ }
}
}