push_function (func);
+ bool is_gsource = cl.base_class == gsource_type;
+
if (cl.is_compact) {
// Add declaration, since the instance_init function is explicitly called
// by the creation methods
// connect overridden methods
foreach (Method m in cl.get_methods ()) {
- if (m.base_method == null) {
+ if (m.base_method == null || is_gsource) {
continue;
}
var base_type = (ObjectTypeSymbol) m.base_method.parent_symbol;
// connect overridden properties
foreach (Property prop in cl.get_properties ()) {
- if (prop.base_property == null) {
+ if (prop.base_property == null || is_gsource) {
continue;
}
var base_type = prop.base_property.parent_symbol;
--- /dev/null
+class FooSource : Source {
+ public override bool prepare (out int timeout) {
+ timeout = 1000;
+ return false;
+ }
+
+ public override bool check () {
+ return false;
+ }
+
+ public override bool dispatch (SourceFunc callback) {
+ return false;
+ }
+}
+
+void main () {
+ var foo = new FooSource ();
+}