[vala] Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration
- From: Jürg Billeter <juergbi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration
- Date: Thu, 9 Sep 2010 14:48:15 +0000 (UTC)
commit eebec1fdd5d5e27f6dcb68c6e76615736e4bffb1
Author: Jürg Billeter <j bitron ch>
Date: Sat Aug 14 13:04:55 2010 +0200
Add CCodeFile.add_function_declaration and CCodeFunction.is_declaration
ccode/valaccodefile.vala | 6 ++++
ccode/valaccodefunction.vala | 8 ++++-
codegen/valaccodearraymodule.vala | 16 ++++++------
codegen/valaccodebasemodule.vala | 34 +++++++++++++-------------
codegen/valaccodedelegatemodule.vala | 2 +-
codegen/valaccodemethodmodule.vala | 8 +++---
codegen/valaccodestructmodule.vala | 8 +++---
codegen/valadbusclientmodule.vala | 40 +++++++++++++++---------------
codegen/valadbusmodule.vala | 8 +++---
codegen/valadbusservermodule.vala | 20 ++++++++--------
codegen/valadovabasemodule.vala | 4 +-
codegen/valadovadelegatemodule.vala | 8 +++---
codegen/valadovaobjectmodule.vala | 42 ++++++++++++++++----------------
codegen/valadovavaluemodule.vala | 6 ++--
codegen/valagasyncmodule.vala | 8 +++---
codegen/valagdbusclientmodule.vala | 20 ++++++++--------
codegen/valagdbusservermodule.vala | 20 ++++++++--------
codegen/valagerrormodule.vala | 2 +-
codegen/valagobjectmodule.vala | 14 +++++-----
codegen/valagsignalmodule.vala | 2 +-
codegen/valagtypemodule.vala | 22 ++++++++--------
codegen/valagvariantmodule.vala | 4 +-
codegen/valatyperegisterfunction.vala | 4 +++
23 files changed, 160 insertions(+), 146 deletions(-)
---
diff --git a/ccode/valaccodefile.vala b/ccode/valaccodefile.vala
index 2276cc3..88bba4a 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 d414fb2..bf7071f 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<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);
diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
index 6b6ea83..1a5f239 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 6069360..c23ebe2 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 152ad5f..a176589 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 4d4b127..4a6e805 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<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);
}
}
}
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index 5ca9d92..04b831c 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 d8aca21..1d5cf8b 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 190267a..82fa878 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 6f8b487..8f747c9 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 4e35053..28aaeff 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 d8b066e..d0439ba 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 918dd31..fca759d 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 1f12d61..e876869 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 e8c93b9..a62167d 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<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);
}
diff --git a/codegen/valagdbusclientmodule.vala b/codegen/valagdbusclientmodule.vala
index 9e9973c..fbc7955 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 efee23d..1bbe7b9 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 7512247..19db146 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 7923fd3..ef7e11f 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 d71eb41..e2b0de8 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 82b3ba0..a6c1ebd 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 8ca54ab..91a9c00 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 5d541e0..0490b1a 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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]