From: Jürg Billeter Date: Sat, 14 Aug 2010 11:04:55 +0000 (+0200) Subject: Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration X-Git-Tag: 0.11.0~78 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eebec1fdd5d5e27f6dcb68c6e76615736e4bffb1;p=thirdparty%2Fvala.git Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration --- diff --git a/ccode/valaccodefile.vala b/ccode/valaccodefile.vala index 2276cc37d..88bba4a0d 100644 --- a/ccode/valaccodefile.vala +++ b/ccode/valaccodefile.vala @@ -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); } diff --git a/ccode/valaccodefunction.vala b/ccode/valaccodefunction.vala index d414fb28b..bf7071f8d 100644 --- a/ccode/valaccodefunction.vala +++ b/ccode/valaccodefunction.vala @@ -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 parameters = new ArrayList (); - + 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); diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index 6b6ea8379..1a5f239e2 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -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); diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 606936097..c23ebe29f 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -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); } diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index 152ad5f13..a17658934 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -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); diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala index 4d4b1275a..4a6e805e9 100644 --- a/codegen/valaccodemethodmodule.vala +++ b/codegen/valaccodemethodmodule.vala @@ -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 (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); } } } diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala index 5ca9d9235..04b831c0b 100644 --- a/codegen/valaccodestructmodule.vala +++ b/codegen/valaccodestructmodule.vala @@ -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); } } diff --git a/codegen/valadbusclientmodule.vala b/codegen/valadbusclientmodule.vala index d8aca219e..1d5cf8ba2 100644 --- a/codegen/valadbusclientmodule.vala +++ b/codegen/valadbusclientmodule.vala @@ -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); diff --git a/codegen/valadbusmodule.vala b/codegen/valadbusmodule.vala index 190267a54..82fa878a1 100644 --- a/codegen/valadbusmodule.vala +++ b/codegen/valadbusmodule.vala @@ -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; diff --git a/codegen/valadbusservermodule.vala b/codegen/valadbusservermodule.vala index 6f8b48766..8f747c979 100644 --- a/codegen/valadbusservermodule.vala +++ b/codegen/valadbusservermodule.vala @@ -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; diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala index 4e3505399..28aaefffc 100644 --- a/codegen/valadovabasemodule.vala +++ b/codegen/valadovabasemodule.vala @@ -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); diff --git a/codegen/valadovadelegatemodule.vala b/codegen/valadovadelegatemodule.vala index d8b066e6a..d0439ba46 100644 --- a/codegen/valadovadelegatemodule.vala +++ b/codegen/valadovadelegatemodule.vala @@ -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) { diff --git a/codegen/valadovaobjectmodule.vala b/codegen/valadovaobjectmodule.vala index 918dd3188..fca759d39 100644 --- a/codegen/valadovaobjectmodule.vala +++ b/codegen/valadovaobjectmodule.vala @@ -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; diff --git a/codegen/valadovavaluemodule.vala b/codegen/valadovavaluemodule.vala index 1f12d61ad..e87686982 100644 --- a/codegen/valadovavaluemodule.vala +++ b/codegen/valadovavaluemodule.vala @@ -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) { diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala index e8c93b90c..a62167dcf 100644 --- a/codegen/valagasyncmodule.vala +++ b/codegen/valagasyncmodule.vala @@ -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 (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); } diff --git a/codegen/valagdbusclientmodule.vala b/codegen/valagdbusclientmodule.vala index 9e9973c3e..fbc79553b 100644 --- a/codegen/valagdbusclientmodule.vala +++ b/codegen/valagdbusclientmodule.vala @@ -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); diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala index efee23d5d..1bbe7b9e3 100644 --- a/codegen/valagdbusservermodule.vala +++ b/codegen/valagdbusservermodule.vala @@ -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; diff --git a/codegen/valagerrormodule.vala b/codegen/valagerrormodule.vala index 7512247ca..19db146a9 100644 --- a/codegen/valagerrormodule.vala +++ b/codegen/valagerrormodule.vala @@ -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) { diff --git a/codegen/valagobjectmodule.vala b/codegen/valagobjectmodule.vala index 7923fd3b5..ef7e11fe7 100644 --- a/codegen/valagobjectmodule.vala +++ b/codegen/valagobjectmodule.vala @@ -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); diff --git a/codegen/valagsignalmodule.vala b/codegen/valagsignalmodule.vala index d71eb41aa..e2b0de89a 100644 --- a/codegen/valagsignalmodule.vala +++ b/codegen/valagsignalmodule.vala @@ -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 (); diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 82b3ba06c..a6c1ebd4a 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -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 (); diff --git a/codegen/valagvariantmodule.vala b/codegen/valagvariantmodule.vala index 8ca54ab7a..91a9c006f 100644 --- a/codegen/valagvariantmodule.vala +++ b/codegen/valagvariantmodule.vala @@ -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; } diff --git a/codegen/valatyperegisterfunction.vala b/codegen/valatyperegisterfunction.vala index 5d541e0af..0490b1af1 100644 --- a/codegen/valatyperegisterfunction.vala +++ b/codegen/valatyperegisterfunction.vala @@ -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;