]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GType: Connect default signal handlers in interfaces
authorLuca Bruno <lucabru@src.gnome.org>
Mon, 16 May 2011 14:08:41 +0000 (16:08 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Mon, 16 May 2011 14:08:41 +0000 (16:08 +0200)
codegen/valagtypemodule.vala

index e5eb298c246456764840edab0147ae4da718bae6..73a12596d199f1e0726cfb283f53804912ddf24d 100644 (file)
@@ -2004,6 +2004,17 @@ public class Vala.GTypeModule : GErrorModule {
                        }
                }
 
+               var ciface = new CCodeIdentifier ("iface");
+
+               /* connect default signal handlers */
+               foreach (Signal sig in iface.get_signals ()) {
+                       if (sig.default_handler == null) {
+                               continue;
+                       }
+                       var cname = sig.default_handler.get_real_cname ();
+                       ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, sig.default_handler.vfunc_name), new CCodeIdentifier (cname));
+               }
+
                /* create signals */
                foreach (Signal sig in iface.get_signals ()) {
                        if (sig.comment != null) {
@@ -2015,7 +2026,6 @@ public class Vala.GTypeModule : GErrorModule {
                // connect default implementations
                foreach (Method m in iface.get_methods ()) {
                        if (m.is_virtual) {
-                               var ciface = new CCodeIdentifier ("iface");
                                var cname = m.get_real_cname ();
                                ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.vfunc_name), new CCodeIdentifier (cname));
                        }