]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Make CCodeBaseModule.generate_method_declaration() return bool 91fc9702594fe7a59b06664aa077cee51960f72c
authorSimon Werbeck <simon.werbeck@gmail.com>
Mon, 30 Sep 2019 14:37:33 +0000 (16:37 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 9 Oct 2019 06:09:52 +0000 (08:09 +0200)
This is how CCodeBaseModule.generate_enum_declaration() works already.

codegen/valaccodebasemodule.vala
codegen/valaccodemethodmodule.vala
codegen/valagasyncmodule.vala

index 39303d62ae6bbd6e372ede7046232cf622ab149f..5ea9b61835725d0835ddf4a80148cad8a8a8565a 100644 (file)
@@ -4544,7 +4544,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
        public virtual void generate_interface_declaration (Interface iface, CCodeFile decl_space) {
        }
 
-       public virtual void generate_method_declaration (Method m, CCodeFile decl_space) {
+       public virtual bool generate_method_declaration (Method m, CCodeFile decl_space) {
+               return !add_symbol_declaration (decl_space, m, get_ccode_name (m));
        }
 
        public virtual void generate_error_domain_declaration (ErrorDomain edomain, CCodeFile decl_space) {
index 8534f662a55044021718effc8de11efeb5e885fa..6c21ecadd82830974d10acea273c9ca1eca91412 100644 (file)
@@ -164,12 +164,12 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
                ccode.add_return (new CCodeConstant ("FALSE"));
        }
 
-       public override void generate_method_declaration (Method m, CCodeFile decl_space) {
+       public override bool generate_method_declaration (Method m, CCodeFile decl_space) {
                if (m.is_async_callback) {
-                       return;
+                       return false;
                }
                if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
-                       return;
+                       return false;
                }
 
                generate_type_declaration (new MethodType (m), decl_space);
@@ -232,6 +232,8 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
                                decl_space.add_function_declaration (function);
                        }
                }
+
+               return true;
        }
 
        void register_plugin_types (Symbol sym, Set<Symbol> registered_types) {
index cb7c28b63fc53a59f4be80dfd12b50e3a58f215a..e4e4edbf62650b3f8328d934a467bb834dcba9da 100644 (file)
@@ -316,10 +316,10 @@ public class Vala.GAsyncModule : GtkModule {
                cfile.add_type_definition (structure);
        }
 
-       public override void generate_method_declaration (Method m, CCodeFile decl_space) {
+       public override bool generate_method_declaration (Method m, CCodeFile decl_space) {
                if (m.coroutine) {
                        if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
-                               return;
+                               return false;
                        }
 
                        generate_type_declaration (new MethodType (m), decl_space);
@@ -388,8 +388,10 @@ public class Vala.GAsyncModule : GtkModule {
 
                                decl_space.add_function_declaration (function);
                        }
+
+                       return true;
                } else {
-                       base.generate_method_declaration (m, decl_space);
+                       return base.generate_method_declaration (m, decl_space);
                }
        }