]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration
authorJürg Billeter <j@bitron.ch>
Sat, 14 Aug 2010 11:04:55 +0000 (13:04 +0200)
committerJürg Billeter <j@bitron.ch>
Thu, 9 Sep 2010 14:23:28 +0000 (16:23 +0200)
23 files changed:
ccode/valaccodefile.vala
ccode/valaccodefunction.vala
codegen/valaccodearraymodule.vala
codegen/valaccodebasemodule.vala
codegen/valaccodedelegatemodule.vala
codegen/valaccodemethodmodule.vala
codegen/valaccodestructmodule.vala
codegen/valadbusclientmodule.vala
codegen/valadbusmodule.vala
codegen/valadbusservermodule.vala
codegen/valadovabasemodule.vala
codegen/valadovadelegatemodule.vala
codegen/valadovaobjectmodule.vala
codegen/valadovavaluemodule.vala
codegen/valagasyncmodule.vala
codegen/valagdbusclientmodule.vala
codegen/valagdbusservermodule.vala
codegen/valagerrormodule.vala
codegen/valagobjectmodule.vala
codegen/valagsignalmodule.vala
codegen/valagtypemodule.vala
codegen/valagvariantmodule.vala
codegen/valatyperegisterfunction.vala

index 2276cc37d082602d4a14b3454ed3b82d1881718e..88bba4a0d83db15ccea4bea73de27d4b43339abc 100644 (file)
@@ -73,6 +73,12 @@ public class Vala.CCodeFile {
                type_member_definition.append (node);
        }
 
+       public void add_function_declaration (CCodeFunction func) {
+               var decl = func.copy ();
+               decl.is_declaration = true;
+               type_member_declaration.append (decl);
+       }
+
        public void add_function (CCodeFunction func) {
                type_member_definition.append (func);
        }
index d414fb28b108ca1116aac1239031328d136b879e..bf7071f8dbb2ffc248ab71c5a60523b507e4eda0 100644 (file)
@@ -43,16 +43,19 @@ public class Vala.CCodeFunction : CCodeNode {
 
        public string attributes { get; set; }
 
+       public bool is_declaration { get; set; }
+
        /**
         * The function body.
         */
        public CCodeBlock block { get; set; }
 
        private List<CCodeFormalParameter> parameters = new ArrayList<CCodeFormalParameter> ();
-       
+
        public CCodeFunction (string name, string return_type = "void") {
                this.name = name;
                this.return_type = return_type;
+               this.block = new CCodeBlock ();
        }
        
        /**
@@ -85,6 +88,7 @@ public class Vala.CCodeFunction : CCodeNode {
                        func.parameters.add (param);
                }
                
+               func.is_declaration = is_declaration;
                func.block = block;
                return func;
        }
@@ -121,7 +125,7 @@ public class Vala.CCodeFunction : CCodeNode {
                        writer.write_string (" G_GNUC_DEPRECATED");
                }
 
-               if (block == null) {
+               if (is_declaration) {
                        if (attributes != null) {
                                writer.write_string (" ");
                                writer.write_string (attributes);
index 6b6ea837939e8c3a0ef716a2d0a890d17a268b61..1a5f239e216d441ae6c734fc7df94f2a646fdf2b 100644 (file)
@@ -487,7 +487,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                fun.modifiers = CCodeModifiers.STATIC;
                fun.add_parameter (new CCodeFormalParameter ("array", "%s*".printf (st.get_cname ())));
                fun.add_parameter (new CCodeFormalParameter ("array_length", "gint"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                var cdofree = new CCodeBlock ();
 
@@ -540,7 +540,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                fun.add_parameter (new CCodeFormalParameter ("array", "gpointer"));
                fun.add_parameter (new CCodeFormalParameter ("array_length", "gint"));
                fun.add_parameter (new CCodeFormalParameter ("destroy_func", "GDestroyNotify"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                var cdofree = new CCodeBlock ();
 
@@ -565,7 +565,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                fun.add_parameter (new CCodeFormalParameter ("array", "gpointer"));
                fun.add_parameter (new CCodeFormalParameter ("array_length", "gint"));
                fun.add_parameter (new CCodeFormalParameter ("destroy_func", "GDestroyNotify"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                // call _vala_array_destroy to free the array elements
                var ccall = new CCodeFunctionCall (new CCodeIdentifier ("_vala_array_destroy"));
@@ -595,7 +595,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                fun.add_parameter (new CCodeFormalParameter ("src", "gint"));
                fun.add_parameter (new CCodeFormalParameter ("dest", "gint"));
                fun.add_parameter (new CCodeFormalParameter ("length", "gint"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                var array = new CCodeCastExpression (new CCodeIdentifier ("array"), "char*");
                var element_size = new CCodeIdentifier ("element_size");
@@ -637,7 +637,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                var fun = new CCodeFunction ("_vala_array_length", "gint");
                fun.modifiers = CCodeModifiers.STATIC;
                fun.add_parameter (new CCodeFormalParameter ("array", "gpointer"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                var block = new CCodeBlock ();
 
@@ -805,7 +805,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -869,7 +869,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -941,7 +941,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
index 6069360979b0991c1845d61a30439d35e326c237..c23ebe29f90f1c5a81385dc4dcb8205989da8c69 100644 (file)
@@ -552,7 +552,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                fun.modifiers = CCodeModifiers.STATIC;
                fun.add_parameter (new CCodeFormalParameter ("str1", "const char *"));
                fun.add_parameter (new CCodeFormalParameter ("str2", "const char *"));
-               cfile.add_type_member_declaration (fun.copy ());
+               cfile.add_function_declaration (fun);
 
                // (str1 != str2)
                var cineq = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, new CCodeIdentifier ("str1"), new CCodeIdentifier ("str2"));
@@ -700,7 +700,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        regfun.attributes = "G_GNUC_UNUSED";
                }
 
-               decl_space.add_type_member_declaration (regfun);
+               decl_space.add_function_declaration (regfun);
 
                return true;
        }
@@ -1315,7 +1315,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                if (prop.is_private_symbol () || (!acc.readable && !acc.writable) || acc.access == SymbolAccessibility.PRIVATE) {
                        function.modifiers |= CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
        }
 
        public override void visit_property_accessor (PropertyAccessor acc) {
@@ -1845,7 +1845,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        var ref_fun = new CCodeFunction ("block%d_data_ref".printf (block_id), struct_name + "*");
                        ref_fun.add_parameter (new CCodeFormalParameter ("_data%d_".printf (block_id), struct_name + "*"));
                        ref_fun.modifiers = CCodeModifiers.STATIC;
-                       cfile.add_type_member_declaration (ref_fun.copy ());
+                       cfile.add_function_declaration (ref_fun);
                        ref_fun.block = new CCodeBlock ();
 
                        var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_atomic_int_inc"));
@@ -1857,7 +1857,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        var unref_fun = new CCodeFunction ("block%d_data_unref".printf (block_id), "void");
                        unref_fun.add_parameter (new CCodeFormalParameter ("_data%d_".printf (block_id), struct_name + "*"));
                        unref_fun.modifiers = CCodeModifiers.STATIC;
-                       cfile.add_type_member_declaration (unref_fun.copy ());
+                       cfile.add_function_declaration (unref_fun);
                        unref_fun.block = new CCodeBlock ();
                        
                        ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_atomic_int_dec_and_test"));
@@ -2513,7 +2513,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = cblock;
                cfile.add_function (function);
@@ -2569,7 +2569,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = cblock;
                cfile.add_function (function);
@@ -2640,7 +2640,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -2677,7 +2677,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -2737,7 +2737,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -2861,7 +2861,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        free_call.add_argument (new CCodeMemberAccess.pointer(new CCodeIdentifier("node"), "data"));
                        wrapper_block.add_statement (new CCodeExpressionStatement (free_call));
                        wrapper_block.add_statement (new CCodeReturnStatement (new CCodeConstant ("FALSE")));
-                       cfile.add_type_member_declaration (function.copy ());
+                       cfile.add_function_declaration (function);
                        wrapper.block = wrapper_block;
                        cfile.add_function (wrapper);
 
@@ -2893,7 +2893,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -4592,7 +4592,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                block.add_statement (fragment);
                block.add_statement (new CCodeReturnStatement (result));
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                cfunc.block = block;
                cfile.add_function (cfunc);
@@ -4989,7 +4989,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                block.add_statement (cloop);
                block.add_statement (new CCodeReturnStatement (new CCodeConstant ("FALSE")));
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -5211,7 +5211,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        block.add_statement (fragment);
                        block.add_statement (new CCodeReturnStatement (sink));
 
-                       cfile.add_type_member_declaration (cfunc.copy ());
+                       cfile.add_function_declaration (cfunc);
 
                        cfunc.block = block;
                        cfile.add_function (cfunc);
@@ -5644,7 +5644,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                        }
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = cblock;
                cfile.add_function (function);
        }
@@ -5712,7 +5712,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
 
                pop_context ();
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = cblock;
                cfile.add_function (function);
        }
index 152ad5f134f9763b9ae39943952f824518fbd6ae..a176589347393c9416b482a124457654ffa720a0 100644 (file)
@@ -600,7 +600,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
 
                // append to file
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
index 4d4b1275a660cd61cebfc89f9dc1c5783e9950cb..4a6e805e93dbe87e79e3b75c4e8eb4e12ea2d0c2 100644 (file)
@@ -188,7 +188,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
                if (!(m is CreationMethod && cl != null && cl.is_abstract)) {
                        generate_cparameters (m, decl_space, cparam_map, function, null, carg_map, new CCodeFunctionCall (new CCodeIdentifier ("fake")));
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
                }
 
                if (m is CreationMethod && cl != null) {
@@ -202,7 +202,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
                        cparam_map = new HashMap<int,CCodeFormalParameter> (direct_hash, direct_equal);
                        generate_cparameters (m, decl_space, cparam_map, function);
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
                }
        }
 
@@ -351,7 +351,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
                                if (m.base_method != null || m.base_interface_method != null) {
                                        // declare *_real_* function
                                        function.modifiers |= CCodeModifiers.STATIC;
-                                       cfile.add_type_member_declaration (function.copy ());
+                                       cfile.add_function_declaration (function);
                                } else if (m.is_private_symbol ()) {
                                        function.modifiers |= CCodeModifiers.STATIC;
                                }
@@ -371,7 +371,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
                                        function.add_parameter (new CCodeFormalParameter ("data", Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data*"));
 
                                        function.modifiers |= CCodeModifiers.STATIC;
-                                       cfile.add_type_member_declaration (function.copy ());
+                                       cfile.add_function_declaration (function);
                                }
                        }
                }
index 5ca9d9235999b9d9b543c521b49adc0fc0400d92..04b831c0b9570bc5ab1d44b4de59ad2442765893 100644 (file)
@@ -112,14 +112,14 @@ public class Vala.CCodeStructModule : CCodeBaseModule {
                        function.modifiers = CCodeModifiers.STATIC;
                }
                function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
 
                function = new CCodeFunction (st.get_free_function (), "void");
                if (st.is_private_symbol ()) {
                        function.modifiers = CCodeModifiers.STATIC;
                }
                function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
 
                if (st.is_disposable ()) {
                        function = new CCodeFunction (st.get_copy_function (), "void");
@@ -128,14 +128,14 @@ public class Vala.CCodeStructModule : CCodeBaseModule {
                        }
                        function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
                        function.add_parameter (new CCodeFormalParameter ("dest", st.get_cname () + "*"));
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
 
                        function = new CCodeFunction (st.get_destroy_function (), "void");
                        if (st.is_private_symbol ()) {
                                function.modifiers = CCodeModifiers.STATIC;
                        }
                        function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
                }
        }
 
index d8aca219efca6c05c01dbf1b89bf3f582984de8c..1d5cf8ba2fab2536a6c133f1ab7bd86e8e92f8bf 100644 (file)
@@ -91,7 +91,7 @@ public class Vala.DBusClientModule : DBusModule {
                }
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -648,7 +648,7 @@ public class Vala.DBusClientModule : DBusModule {
                generate_dbus_property_getter_wrapper (prop, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -678,7 +678,7 @@ public class Vala.DBusClientModule : DBusModule {
                generate_dbus_property_setter_wrapper (prop, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -819,7 +819,7 @@ public class Vala.DBusClientModule : DBusModule {
                generate_dbus_connect_wrapper (sig, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -842,7 +842,7 @@ public class Vala.DBusClientModule : DBusModule {
                generate_dbus_disconnect_wrapper (sig, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -975,7 +975,7 @@ public class Vala.DBusClientModule : DBusModule {
                }
 
                proxy_iface_init.modifiers = CCodeModifiers.STATIC;
-               cfile.add_type_member_declaration (proxy_iface_init.copy ());
+               cfile.add_function_declaration (proxy_iface_init);
                proxy_iface_init.block = iface_block;
                cfile.add_function (proxy_iface_init);
        }
@@ -1049,7 +1049,7 @@ public class Vala.DBusClientModule : DBusModule {
                proxy_new.add_parameter (new CCodeFormalParameter ("name", "const char*"));
                proxy_new.add_parameter (new CCodeFormalParameter ("path", "const char*"));
 
-               decl_space.add_type_member_declaration (proxy_new);
+               decl_space.add_function_declaration (proxy_new);
        }
 
        public override void visit_interface (Interface iface) {
@@ -1080,7 +1080,7 @@ public class Vala.DBusClientModule : DBusModule {
 
                var type_fun = new CCodeFunction(lower_cname + "_get_type", "GType");
                type_fun.attributes = "G_GNUC_CONST";
-               cfile.add_type_member_declaration (type_fun);
+               cfile.add_function_declaration (type_fun);
 
                var define_type = new CCodeFunctionCall (new CCodeIdentifier ("G_DEFINE_TYPE_EXTENDED"));
                define_type.add_argument (new CCodeIdentifier (cname));
@@ -1283,7 +1283,7 @@ public class Vala.DBusClientModule : DBusModule {
                get_prop.add_parameter (new CCodeFormalParameter ("property_id", "guint"));
                get_prop.add_parameter (new CCodeFormalParameter ("value", "GValue *"));
                get_prop.add_parameter (new CCodeFormalParameter ("pspec", "GParamSpec *"));
-               cfile.add_type_member_declaration (get_prop.copy ());
+               cfile.add_function_declaration (get_prop);
                get_prop.block = new CCodeBlock ();
                cfile.add_function (get_prop);
 
@@ -1293,7 +1293,7 @@ public class Vala.DBusClientModule : DBusModule {
                set_prop.add_parameter (new CCodeFormalParameter ("property_id", "guint"));
                set_prop.add_parameter (new CCodeFormalParameter ("value", "const GValue *"));
                set_prop.add_parameter (new CCodeFormalParameter ("pspec", "GParamSpec *"));
-               cfile.add_type_member_declaration (set_prop.copy ());
+               cfile.add_function_declaration (set_prop);
                set_prop.block = new CCodeBlock ();
                cfile.add_function (set_prop);
        }
@@ -1389,7 +1389,7 @@ public class Vala.DBusClientModule : DBusModule {
 
                block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1486,7 +1486,7 @@ public class Vala.DBusClientModule : DBusModule {
 
                filter_block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("DBUS_HANDLER_RESULT_NOT_YET_HANDLED")));
 
-               cfile.add_type_member_declaration (proxy_filter.copy ());
+               cfile.add_function_declaration (proxy_filter);
                proxy_filter.block = filter_block;
                cfile.add_function (proxy_filter);
        }
@@ -1594,7 +1594,7 @@ public class Vala.DBusClientModule : DBusModule {
                cdecl.add_declarator (new CCodeVariableDeclarator ("reply"));
                block.add_statement (cdecl);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1911,7 +1911,7 @@ public class Vala.DBusClientModule : DBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2006,7 +2006,7 @@ public class Vala.DBusClientModule : DBusModule {
 
                block.add_statement (postfragment);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2185,7 +2185,7 @@ public class Vala.DBusClientModule : DBusModule {
                pending.add_argument (new CCodeConstant ("NULL"));
                block.add_statement (new CCodeExpressionStatement (pending));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2248,7 +2248,7 @@ public class Vala.DBusClientModule : DBusModule {
                pendingfree.add_argument (new CCodeIdentifier ("pending"));
                block.add_statement (new CCodeExpressionStatement (pendingfree));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2370,7 +2370,7 @@ public class Vala.DBusClientModule : DBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2656,7 +2656,7 @@ public class Vala.DBusClientModule : DBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -2803,7 +2803,7 @@ public class Vala.DBusClientModule : DBusModule {
                reply_unref.add_argument (new CCodeIdentifier ("_reply"));
                block.add_statement (new CCodeExpressionStatement (reply_unref));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
index 190267a540e7686be08a50ae33df4fc47fee9025..82fa878a1b52fa2afa7de7d40fcbc042a9692d50 100644 (file)
@@ -170,8 +170,8 @@ public class Vala.DBusModule : GAsyncModule {
        public override bool generate_enum_declaration (Enum en, CCodeFile decl_space) {
                if (base.generate_enum_declaration (en, decl_space)) {
                        if (is_string_marshalled_enum (en)) {
-                               decl_space.add_type_member_declaration (generate_enum_from_string_function_declaration (en));
-                               decl_space.add_type_member_declaration (generate_enum_to_string_function_declaration (en));
+                               decl_space.add_function_declaration (generate_enum_from_string_function_declaration (en));
+                               decl_space.add_function_declaration (generate_enum_to_string_function_declaration (en));
                        }
                        return true;
                }
@@ -1006,7 +1006,7 @@ public class Vala.DBusModule : GAsyncModule {
                cfunc.add_parameter (new CCodeFormalParameter ("object", "void*"));
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -1049,7 +1049,7 @@ public class Vala.DBusModule : GAsyncModule {
                cfunc.add_parameter (new CCodeFormalParameter ("object", "GObject*"));
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                block = new CCodeBlock ();
                cfunc.block = block;
index 6f8b48766633ad858eb93e9ca71c35f87f923fb6..8f747c979be52d473093e8b2f2a1a387be594673 100644 (file)
@@ -406,13 +406,13 @@ public class Vala.DBusServerModule : DBusClientModule {
                        ready_block.add_statement (new CCodeExpressionStatement (free_call));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
 
                if (m.coroutine) {
-                       cfile.add_type_member_declaration (ready_function.copy ());
+                       cfile.add_function_declaration (ready_function);
 
                        ready_function.block = ready_block;
                        cfile.add_function (ready_function);
@@ -552,7 +552,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                message_unref.add_argument (new CCodeIdentifier ("_message"));
                block.add_statement (new CCodeExpressionStatement (message_unref));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -576,7 +576,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                        cfunc.modifiers |= CCodeModifiers.STATIC;
                }
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -638,7 +638,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                cfunc.add_parameter (new CCodeFormalParameter ("connection", "DBusConnection*"));
                cfunc.add_parameter (new CCodeFormalParameter ("_user_data_", "void*"));
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -865,7 +865,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                        handle_reply (block);
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1079,7 +1079,7 @@ public class Vala.DBusServerModule : DBusClientModule {
 
                handle_reply (block);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1253,7 +1253,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                        handle_reply (block);
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1464,7 +1464,7 @@ public class Vala.DBusServerModule : DBusClientModule {
 
                handle_reply (block);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -1509,7 +1509,7 @@ public class Vala.DBusServerModule : DBusClientModule {
                        cfunc.modifiers |= CCodeModifiers.STATIC;
                }
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
index 4e3505399f634b15acd3ae230445a0428a824c10..28aaefffc54640cb0694cd146ea51616d8d42fcd 100644 (file)
@@ -814,7 +814,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
                        // create type_get/finalize functions
                        var type_get_fun = new CCodeFunction ("block%d_data_type_get".printf (block_id), "DovaType*");
                        type_get_fun.modifiers = CCodeModifiers.STATIC;
-                       cfile.add_type_member_declaration (type_get_fun.copy ());
+                       cfile.add_function_declaration (type_get_fun);
                        type_get_fun.block = new CCodeBlock ();
 
                        var cdecl = new CCodeDeclaration ("int");
@@ -852,7 +852,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
                        var unref_fun = new CCodeFunction ("block%d_data_finalize".printf (block_id), "void");
                        unref_fun.add_parameter (new CCodeFormalParameter ("_data%d_".printf (block_id), struct_name + "*"));
                        unref_fun.modifiers = CCodeModifiers.STATIC;
-                       cfile.add_type_member_declaration (unref_fun.copy ());
+                       cfile.add_function_declaration (unref_fun);
                        unref_fun.block = free_block;
 
                        cfile.add_function (unref_fun);
index d8b066e6a5419993b0746fed9ca7a68207efddea..d0439ba4646f303b87a3c42984e6441b86ecca3c 100644 (file)
@@ -40,24 +40,24 @@ public class Vala.DovaDelegateModule : DovaValueModule {
                if (d.is_internal_symbol ()) {
                        type_fun.modifiers = CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (type_fun);
+               decl_space.add_function_declaration (type_fun);
 
                var type_init_fun = new CCodeFunction ("%s_type_init".printf (d.get_lower_case_cname ()));
                if (d.is_internal_symbol ()) {
                        type_init_fun.modifiers = CCodeModifiers.STATIC;
                }
                type_init_fun.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
-               decl_space.add_type_member_declaration (type_init_fun);
+               decl_space.add_function_declaration (type_init_fun);
 
                generate_type_declaration (d.return_type, decl_space);
 
                var function = generate_new_function (d, decl_space);
                function.block = null;
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
 
                function = generate_invoke_function (d, decl_space);
                function.block = null;
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
        }
 
        CCodeFunction generate_new_function (Delegate d, CCodeFile decl_space) {
index 918dd31884601dcc77fcff87cdb4e5a18695e45b..fca759d39f0e40a7110730ac07f68c91b25e0bcc 100644 (file)
@@ -49,7 +49,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                        value_copy_function.add_parameter (new CCodeFormalParameter ("src", "void *"));
                        value_copy_function.add_parameter (new CCodeFormalParameter ("src_index", "int32_t"));
 
-                       cfile.add_type_member_declaration (value_copy_function);
+                       cfile.add_function_declaration (value_copy_function);
 
                        var value_equals_function = new CCodeFunction ("dova_type_value_equals", "bool");
                        value_equals_function.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
@@ -58,14 +58,14 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                        value_equals_function.add_parameter (new CCodeFormalParameter ("other", "void *"));
                        value_equals_function.add_parameter (new CCodeFormalParameter ("other_index", "int32_t"));
 
-                       cfile.add_type_member_declaration (value_equals_function);
+                       cfile.add_function_declaration (value_equals_function);
 
                        var value_hash_function = new CCodeFunction ("dova_type_value_hash", "uint32_t");
                        value_hash_function.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
                        value_hash_function.add_parameter (new CCodeFormalParameter ("value", "void *"));
                        value_hash_function.add_parameter (new CCodeFormalParameter ("value_index", "int32_t"));
 
-                       cfile.add_type_member_declaration (value_hash_function);
+                       cfile.add_function_declaration (value_hash_function);
                }
 
                if (cl.base_class != null) {
@@ -82,7 +82,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                foreach (var type_param in cl.get_type_parameters ()) {
                        type_fun.add_parameter (new CCodeFormalParameter ("%s_type".printf (type_param.name.down ()), "DovaType *"));
                }
-               decl_space.add_type_member_declaration (type_fun);
+               decl_space.add_function_declaration (type_fun);
 
                var type_init_fun = new CCodeFunction ("%s_type_init".printf (cl.get_lower_case_cname ()));
                if (cl.is_internal_symbol ()) {
@@ -92,7 +92,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                foreach (var type_param in cl.get_type_parameters ()) {
                        type_init_fun.add_parameter (new CCodeFormalParameter ("%s_type".printf (type_param.name.down ()), "DovaType *"));
                }
-               decl_space.add_type_member_declaration (type_init_fun);
+               decl_space.add_function_declaration (type_init_fun);
        }
 
        void generate_virtual_method_declaration (Method m, CCodeFile decl_space, CCodeStruct type_struct) {
@@ -309,7 +309,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_copy")) {
                        return;
                }
-               decl_space.add_type_member_declaration (create_set_value_copy_function (true));
+               decl_space.add_function_declaration (create_set_value_copy_function (true));
        }
 
        CCodeFunction create_set_value_equals_function (bool decl_only = false) {
@@ -333,7 +333,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_equals")) {
                        return;
                }
-               decl_space.add_type_member_declaration (create_set_value_equals_function (true));
+               decl_space.add_function_declaration (create_set_value_equals_function (true));
        }
 
        CCodeFunction create_set_value_hash_function (bool decl_only = false) {
@@ -357,7 +357,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_hash")) {
                        return;
                }
-               decl_space.add_type_member_declaration (create_set_value_hash_function (true));
+               decl_space.add_function_declaration (create_set_value_hash_function (true));
        }
 
        CCodeFunction create_set_value_to_any_function (bool decl_only = false) {
@@ -381,7 +381,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_to_any")) {
                        return;
                }
-               decl_space.add_type_member_declaration (create_set_value_to_any_function (true));
+               decl_space.add_function_declaration (create_set_value_to_any_function (true));
        }
 
        CCodeFunction create_set_value_from_any_function (bool decl_only = false) {
@@ -405,7 +405,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (add_symbol_declaration (decl_space, type_class, "dova_type_set_value_from_any")) {
                        return;
                }
-               decl_space.add_type_member_declaration (create_set_value_from_any_function (true));
+               decl_space.add_function_declaration (create_set_value_from_any_function (true));
        }
 
        public CCodeBlock generate_type_get_function (TypeSymbol cl, Class? base_class) {
@@ -758,7 +758,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
 
                function.add_parameter (new CCodeFormalParameter ("this", cl.get_cname () + "*"));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
 
                var cblock = new CCodeBlock ();
@@ -1125,7 +1125,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                if (prop.is_internal_symbol () || acc.is_internal_symbol ()) {
                        function.modifiers |= CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
 
                if (prop.is_abstract || prop.is_virtual) {
                        string param_list = "(%s *this".printf (((ObjectTypeSymbol) prop.parent_symbol).get_cname ());
@@ -1139,7 +1139,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                        override_func.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
                        override_func.add_parameter (new CCodeFormalParameter ("(*function) %s".printf (param_list), acc.readable ? acc.value_type.get_cname () : "void"));
 
-                       decl_space.add_type_member_declaration (override_func);
+                       decl_space.add_function_declaration (override_func);
                }
        }
 
@@ -1290,7 +1290,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                foreach (var type_param in iface.get_type_parameters ()) {
                        type_fun.add_parameter (new CCodeFormalParameter ("%s_type".printf (type_param.name.down ()), "DovaType *"));
                }
-               decl_space.add_type_member_declaration (type_fun);
+               decl_space.add_function_declaration (type_fun);
 
                var type_init_fun = new CCodeFunction ("%s_type_init".printf (iface.get_lower_case_cname ()));
                if (iface.is_internal_symbol ()) {
@@ -1300,7 +1300,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                foreach (var type_param in iface.get_type_parameters ()) {
                        type_init_fun.add_parameter (new CCodeFormalParameter ("%s_type".printf (type_param.name.down ()), "DovaType *"));
                }
-               decl_space.add_type_member_declaration (type_init_fun);
+               decl_space.add_function_declaration (type_init_fun);
        }
 
 
@@ -1335,13 +1335,13 @@ public class Vala.DovaObjectModule : DovaArrayModule {
 
                generate_cparameters (m, decl_space, function, null, new CCodeFunctionCall (new CCodeIdentifier ("fake")));
 
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
 
                if (m.is_abstract || m.is_virtual) {
                        var base_func = function.copy ();
                        base_func.name = "%sbase_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name);
                        base_func.insert_parameter (0, new CCodeFormalParameter ("base_type", "DovaType *"));
-                       decl_space.add_type_member_declaration (base_func);
+                       decl_space.add_function_declaration (base_func);
 
                        string param_list = "(%s *this".printf (((ObjectTypeSymbol) m.parent_symbol).get_cname ());
                        foreach (var param in m.get_parameters ()) {
@@ -1356,7 +1356,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                        var override_func = new CCodeFunction ("%soverride_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name));
                        override_func.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
                        override_func.add_parameter (new CCodeFormalParameter ("(*function) %s".printf (param_list), (m.return_type is GenericType) ? "void" : m.return_type.get_cname ()));
-                       decl_space.add_type_member_declaration (override_func);
+                       decl_space.add_function_declaration (override_func);
                }
 
                if (m is CreationMethod && m.parent_symbol is Class) {
@@ -1371,7 +1371,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
 
                        generate_cparameters (m, decl_space, function);
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
                }
        }
 
@@ -1421,7 +1421,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                        if (m.base_method != null || m.base_interface_method != null) {
                                // declare *_real_* function
                                function.modifiers |= CCodeModifiers.STATIC;
-                               cfile.add_type_member_declaration (function.copy ());
+                               cfile.add_function_declaration (function);
                        } else if (m.is_internal_symbol ()) {
                                function.modifiers |= CCodeModifiers.STATIC;
                        }
@@ -1790,7 +1790,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
                                vfunc.modifiers |= CCodeModifiers.STATIC;
                        }
 
-                       cfile.add_type_member_declaration (vfunc.copy ());
+                       cfile.add_function_declaration (vfunc);
 
                        vfunc.block = vblock;
 
index 1f12d61adbfa16762659b9d33a06b2402daced06..e87686982b26a6c49c3afee922be8487ba7873c5 100644 (file)
@@ -45,14 +45,14 @@ public class Vala.DovaValueModule : DovaObjectModule {
                if (st.is_internal_symbol ()) {
                        type_fun.modifiers = CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (type_fun);
+               decl_space.add_function_declaration (type_fun);
 
                var type_init_fun = new CCodeFunction ("%s_type_init".printf (st.get_lower_case_cname ()));
                type_init_fun.add_parameter (new CCodeFormalParameter ("type", "DovaType *"));
                if (st.is_internal_symbol ()) {
                        type_init_fun.modifiers = CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (type_init_fun);
+               decl_space.add_function_declaration (type_init_fun);
 
                var function = new CCodeFunction (st.get_copy_function (), "void");
                if (st.is_internal_symbol ()) {
@@ -64,7 +64,7 @@ public class Vala.DovaValueModule : DovaObjectModule {
                function.add_parameter (new CCodeFormalParameter ("src", st.get_cname () + "*"));
                function.add_parameter (new CCodeFormalParameter ("src_index", "int32_t"));
 
-               decl_space.add_type_member_declaration (function);
+               decl_space.add_function_declaration (function);
        }
 
        public override void visit_struct (Struct st) {
index e8c93b90cc697b2bcc356775282fb5fd96cc72cf..a62167dcfe7096431317976b3eba5c0295897af3 100644 (file)
@@ -275,7 +275,7 @@ public class Vala.GAsyncModule : GSignalModule {
                if (m.base_method != null || m.base_interface_method != null) {
                        // declare *_real_* function
                        asyncfunc.modifiers |= CCodeModifiers.STATIC;
-                       cfile.add_type_member_declaration (asyncfunc.copy ());
+                       cfile.add_function_declaration (asyncfunc);
                } else if (m.is_private_symbol ()) {
                        asyncfunc.modifiers |= CCodeModifiers.STATIC;
                }
@@ -296,7 +296,7 @@ public class Vala.GAsyncModule : GSignalModule {
                var block = function.block;
                function.block = null;
  
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -319,7 +319,7 @@ public class Vala.GAsyncModule : GSignalModule {
                                asyncfunc.modifiers |= CCodeModifiers.STATIC;
                        }
 
-                       decl_space.add_type_member_declaration (asyncfunc);
+                       decl_space.add_function_declaration (asyncfunc);
 
                        var finishfunc = new CCodeFunction (m.get_finish_cname ());
                        cparam_map = new HashMap<int,CCodeFormalParameter> (direct_hash, direct_equal);
@@ -331,7 +331,7 @@ public class Vala.GAsyncModule : GSignalModule {
                                finishfunc.modifiers |= CCodeModifiers.STATIC;
                        }
 
-                       decl_space.add_type_member_declaration (finishfunc);
+                       decl_space.add_function_declaration (finishfunc);
                } else {
                        base.generate_method_declaration (m, decl_space);
                }
index 9e9973c3e756d4d61cce72e5511eaf73547a9b16..fbc79553bd2901a0c60aef54d623dd85456be912 100644 (file)
@@ -53,7 +53,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                }
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -140,7 +140,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                }
 
                proxy_iface_init.modifiers = CCodeModifiers.STATIC;
-               cfile.add_type_member_declaration (proxy_iface_init.copy ());
+               cfile.add_function_declaration (proxy_iface_init);
                proxy_iface_init.block = iface_block;
                cfile.add_function (proxy_iface_init);
        }
@@ -183,7 +183,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                // declare proxy_get_type function
                var proxy_get_type = new CCodeFunction (get_type_name, "GType");
                proxy_get_type.attributes = "G_GNUC_CONST";
-               decl_space.add_type_member_declaration (proxy_get_type);
+               decl_space.add_function_declaration (proxy_get_type);
        }
 
        public override void visit_interface (Interface iface) {
@@ -356,7 +356,7 @@ public class Vala.GDBusClientModule : GDBusModule {
 
                block.add_statement (postfragment);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -373,7 +373,7 @@ public class Vala.GDBusClientModule : GDBusModule {
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -560,7 +560,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -607,7 +607,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                ccall.add_argument (new CCodeIdentifier ("_user_data_"));
                block.add_statement (new CCodeExpressionStatement (ccall));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -663,7 +663,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -804,7 +804,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                        block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_result")));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -904,7 +904,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                unref_reply.add_argument (new CCodeIdentifier ("_reply"));
                block.add_statement (new CCodeExpressionStatement (unref_reply));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
index efee23d5db94c77e2f7981fe77ddff65f0ffbe5d..1bbe7b9e3ddefe56839be83cfe5e45ad2ecc9896 100644 (file)
@@ -334,13 +334,13 @@ public class Vala.GDBusServerModule : GDBusClientModule {
                        ready_block.add_statement (new CCodeExpressionStatement (unref_call));
                }
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
 
                if (m.coroutine) {
-                       cfile.add_type_member_declaration (ready_function.copy ());
+                       cfile.add_function_declaration (ready_function);
 
                        ready_function.block = ready_block;
                        cfile.add_function (ready_function);
@@ -424,7 +424,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
                ccall.add_argument (new CCodeConstant ("NULL"));
                block.add_statement (new CCodeExpressionStatement (ccall));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                function.block = block;
                cfile.add_function (function);
 
@@ -502,7 +502,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
 
                block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("_reply")));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -573,7 +573,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
 
                block.add_statement (postfragment);
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
                function.block = block;
                cfile.add_function (function);
@@ -617,7 +617,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -679,7 +679,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -745,7 +745,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
 
                cfunc.modifiers |= CCodeModifiers.STATIC;
 
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                var block = new CCodeBlock ();
                cfunc.block = block;
@@ -1089,7 +1089,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
                if (sym.is_private_symbol ()) {
                        cfunc.modifiers |= CCodeModifiers.STATIC;
                }
-               decl_space.add_type_member_declaration (cfunc);
+               decl_space.add_function_declaration (cfunc);
        }
 
        void visit_object_type_symbol (ObjectTypeSymbol sym) {
@@ -1167,7 +1167,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
                cfunc = new CCodeFunction ("_" + sym.get_lower_case_cprefix () + "unregister_object");
                cfunc.add_parameter (new CCodeFormalParameter ("user_data", "gpointer"));
                cfunc.modifiers |= CCodeModifiers.STATIC;
-               cfile.add_type_member_declaration (cfunc.copy ());
+               cfile.add_function_declaration (cfunc);
 
                block = new CCodeBlock ();
                cfunc.block = block;
index 7512247cae1b997826fe9622f7aef9c38b711133..19db146a9dc84eb5e917d9f7fca28800e9e80995 100644 (file)
@@ -53,7 +53,7 @@ public class Vala.GErrorModule : CCodeDelegateModule {
 
                var cquark_fun = new CCodeFunction (quark_fun_name, gquark_type.data_type.get_cname ());
 
-               decl_space.add_type_member_declaration (cquark_fun);
+               decl_space.add_function_declaration (cquark_fun);
        }
 
        public override void visit_error_domain (ErrorDomain edomain) {
index 7923fd3b5b22b45c61d11ef743cf17f2cc9b251f..ef7e11fe73346f6137d142d062056a74a4043d83 100644 (file)
@@ -274,7 +274,7 @@ public class Vala.GObjectModule : GTypeModule {
 
                block.add_statement (cswitch);
 
-               cfile.add_type_member_declaration (get_prop.copy ());
+               cfile.add_function_declaration (get_prop);
 
                get_prop.block = block;
                
@@ -395,7 +395,7 @@ public class Vala.GObjectModule : GTypeModule {
                        cswitch.add_statement (new CCodeBreakStatement ());
                }
 
-               cfile.add_type_member_declaration (set_prop.copy ());
+               cfile.add_function_declaration (set_prop);
 
                set_prop.block = block;
                
@@ -441,7 +441,7 @@ public class Vala.GObjectModule : GTypeModule {
                        function.add_parameter (new CCodeFormalParameter ("n_construct_properties", "guint"));
                        function.add_parameter (new CCodeFormalParameter ("construct_properties", "GObjectConstructParam *"));
                
-                       cfile.add_type_member_declaration (function.copy ());
+                       cfile.add_function_declaration (function);
 
 
                        var cblock = new CCodeBlock ();
@@ -552,7 +552,7 @@ public class Vala.GObjectModule : GTypeModule {
                generate_gobject_property_getter_wrapper (prop, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -578,7 +578,7 @@ public class Vala.GObjectModule : GTypeModule {
                generate_gobject_property_setter_wrapper (prop, block);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -632,7 +632,7 @@ public class Vala.GObjectModule : GTypeModule {
                generate_gobject_connect_wrapper (sig, block, false);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
@@ -656,7 +656,7 @@ public class Vala.GObjectModule : GTypeModule {
                generate_gobject_connect_wrapper (sig, block, true);
 
                // append to C source file
-               cfile.add_type_member_declaration (func.copy ());
+               cfile.add_function_declaration (func);
 
                func.block = block;
                cfile.add_function (func);
index d71eb41aa49e7f846e981cb350ab28e4091c3863..e2b0de89a91d885a74a20184f61b015b606292bf 100644 (file)
@@ -228,7 +228,7 @@ public class Vala.GSignalModule : GObjectModule {
                signal_marshaller.add_parameter (new CCodeFormalParameter ("invocation_hint", "gpointer"));
                signal_marshaller.add_parameter (new CCodeFormalParameter ("marshal_data", "gpointer"));
                
-               cfile.add_type_member_declaration (signal_marshaller.copy ());
+               cfile.add_function_declaration (signal_marshaller);
                
                var marshaller_body = new CCodeBlock ();
                
index 82b3ba06c2c535f096a059cecd7fe881d47f414b..a6c1ebd4a95550b409a21d05490f65aeaeae2b33 100644 (file)
@@ -99,8 +99,8 @@ public class Vala.GTypeModule : GErrorModule {
                        ref_fun.add_parameter (new CCodeFormalParameter ("instance", "gpointer"));
                        unref_fun.add_parameter (new CCodeFormalParameter ("instance", "gpointer"));
 
-                       decl_space.add_type_member_declaration (ref_fun.copy ());
-                       decl_space.add_type_member_declaration (unref_fun.copy ());
+                       decl_space.add_function_declaration (ref_fun);
+                       decl_space.add_function_declaration (unref_fun);
 
                        // GParamSpec and GValue functions
                        string function_name = cl.get_lower_case_cname ("param_spec_");
@@ -118,7 +118,7 @@ public class Vala.GTypeModule : GErrorModule {
                                function.attributes = "G_GNUC_UNUSED";
                        }
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
 
                        function = new CCodeFunction (cl.get_set_value_function (), "void");
                        function.add_parameter (new CCodeFormalParameter ("value", "GValue*"));
@@ -130,7 +130,7 @@ public class Vala.GTypeModule : GErrorModule {
                                function.attributes = "G_GNUC_UNUSED";
                        }
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
 
                        function = new CCodeFunction (cl.get_take_value_function (), "void");
                        function.add_parameter (new CCodeFormalParameter ("value", "GValue*"));
@@ -142,7 +142,7 @@ public class Vala.GTypeModule : GErrorModule {
                                function.attributes = "G_GNUC_UNUSED";
                        }
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
 
                        function = new CCodeFunction (cl.get_get_value_function (), "gpointer");
                        function.add_parameter (new CCodeFormalParameter ("value", "const GValue*"));
@@ -153,7 +153,7 @@ public class Vala.GTypeModule : GErrorModule {
                                function.attributes = "G_GNUC_UNUSED";
                        }
 
-                       decl_space.add_type_member_declaration (function);
+                       decl_space.add_function_declaration (function);
                } else if (!is_gtypeinstance) {
                        if (cl.base_class == null) {
                                var function = new CCodeFunction (cl.get_lower_case_cprefix () + "free", "void");
@@ -163,7 +163,7 @@ public class Vala.GTypeModule : GErrorModule {
 
                                function.add_parameter (new CCodeFormalParameter ("self", cl.get_cname () + "*"));
 
-                               decl_space.add_type_member_declaration (function);
+                               decl_space.add_function_declaration (function);
                        }
                }
 
@@ -1548,7 +1548,7 @@ public class Vala.GTypeModule : GErrorModule {
                if (cl.is_compact) {
                        // Add declaration, since the instance_init function is explicitly called
                        // by the creation methods
-                       cfile.add_type_member_declaration (instance_init.copy ());
+                       cfile.add_function_declaration (instance_init);
                }
 
                var init_block = new CCodeBlock ();
@@ -1570,7 +1570,7 @@ public class Vala.GTypeModule : GErrorModule {
                function.modifiers = CCodeModifiers.STATIC;
 
                function.add_parameter (new CCodeFormalParameter ("klass", cl.get_cname () + "Class *"));
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                
                var cblock = new CCodeBlock ();
 
@@ -1589,7 +1589,7 @@ public class Vala.GTypeModule : GErrorModule {
                function.modifiers = CCodeModifiers.STATIC;
 
                function.add_parameter (new CCodeFormalParameter ("klass", cl.get_cname () + "Class *"));
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
                
                var cblock = new CCodeBlock ();
 
@@ -1614,7 +1614,7 @@ public class Vala.GTypeModule : GErrorModule {
 
                function.add_parameter (new CCodeFormalParameter ("obj", fundamental_class.get_cname () + "*"));
 
-               cfile.add_type_member_declaration (function.copy ());
+               cfile.add_function_declaration (function);
 
 
                var cblock = new CCodeBlock ();
index 8ca54ab7a3c12e58f8b7c8564114c63f2d89e484..91a9c006fd9ce894bf2e583700f81a4f62afa8ff 100644 (file)
@@ -165,8 +165,8 @@ public class Vala.GVariantModule : GAsyncModule {
        public override bool generate_enum_declaration (Enum en, CCodeFile decl_space) {
                if (base.generate_enum_declaration (en, decl_space)) {
                        if (is_string_marshalled_enum (en)) {
-                               decl_space.add_type_member_declaration (generate_enum_from_string_function_declaration (en));
-                               decl_space.add_type_member_declaration (generate_enum_to_string_function_declaration (en));
+                               decl_space.add_function_declaration (generate_enum_from_string_function_declaration (en));
+                               decl_space.add_function_declaration (generate_enum_to_string_function_declaration (en));
                        }
                        return true;
                }
index 5d541e0afb784412ef38e926a2d0123834a1a867..0490b1af17f1650e7cc840ad619804b2ed21324b 100644 (file)
@@ -83,7 +83,9 @@ public abstract class Vala.TypeRegisterFunction {
                        var get_fun = new CCodeFunction ("%s_get_type".printf (get_type_declaration ().get_lower_case_cname (null)), "GType");
                        get_fun.attributes = "G_GNUC_CONST";
 
+                       get_fun.is_declaration = true;
                        declaration_fragment.append (get_fun.copy ());
+                       get_fun.is_declaration = false;
 
                        get_fun.block = new CCodeBlock ();
                        get_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier (type_id_name)));
@@ -258,7 +260,9 @@ public abstract class Vala.TypeRegisterFunction {
                        type_block.add_statement (new CCodeReturnStatement (new CCodeIdentifier (type_id_name)));
                }
 
+               fun.is_declaration = true;
                declaration_fragment.append (fun.copy ());
+               fun.is_declaration = false;
 
                fun.block = type_block;