]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Fix connect/disconnect of dynamic signals
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 4 Aug 2013 20:27:21 +0000 (22:27 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 7 Aug 2013 18:20:54 +0000 (20:20 +0200)
Make dynamic wrapper function return handler id for later
disconnect.

https://bugzilla.gnome.org/show_bug.cgi?id=705461

codegen/valagobjectmodule.vala

index cddbc5e67bec812ae93a768e40fdc1746b5257c5..fe9de20d5b77c78230d6c6e4e4968ac971a835e2 100644 (file)
@@ -594,7 +594,7 @@ public class Vala.GObjectModule : GTypeModule {
                }
 
                string connect_wrapper_name = "_%sconnect".printf (get_dynamic_signal_cname (sig));
-               var func = new CCodeFunction (connect_wrapper_name, "void");
+               var func = new CCodeFunction (connect_wrapper_name, "gulong");
                func.add_parameter (new CCodeParameter ("obj", "gpointer"));
                func.add_parameter (new CCodeParameter ("signal_name", "const char *"));
                func.add_parameter (new CCodeParameter ("handler", "GCallback"));
@@ -617,7 +617,7 @@ public class Vala.GObjectModule : GTypeModule {
                }
 
                string connect_wrapper_name = "_%sconnect_after".printf (get_dynamic_signal_cname (sig));
-               var func = new CCodeFunction (connect_wrapper_name, "void");
+               var func = new CCodeFunction (connect_wrapper_name, "gulong");
                func.add_parameter (new CCodeParameter ("obj", "gpointer"));
                func.add_parameter (new CCodeParameter ("signal_name", "const char *"));
                func.add_parameter (new CCodeParameter ("handler", "GCallback"));
@@ -660,7 +660,7 @@ public class Vala.GObjectModule : GTypeModule {
                        }
                }
 
-               ccode.add_expression (call);
+               ccode.add_return (call);
        }
 
        public override void visit_property (Property prop) {