summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--codegen/valaccodebasemodule.vala27
-rw-r--r--codegen/valaccodedeclarationspace.vala17
-rw-r--r--codegen/valaccodedelegatemodule.vala2
-rw-r--r--codegen/valaccodemethodmodule.vala2
-rw-r--r--codegen/valaccodestructmodule.vala2
-rw-r--r--codegen/valadbusclientmodule.vala2
-rw-r--r--codegen/valadovabasemodule.vala25
-rw-r--r--codegen/valadovadelegatemodule.vala2
-rw-r--r--codegen/valadovaobjectmodule.vala20
-rw-r--r--codegen/valadovastructmodule.vala2
-rw-r--r--codegen/valadovavaluemodule.vala2
-rw-r--r--codegen/valagasyncmodule.vala2
-rw-r--r--codegen/valagdbusclientmodule.vala2
-rw-r--r--codegen/valagdbusservermodule.vala2
-rw-r--r--codegen/valagerrormodule.vala2
-rw-r--r--codegen/valagtypemodule.vala6
16 files changed, 67 insertions, 50 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 2b9a9ab9a..ef145a9ad 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -540,6 +540,23 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
}
+ public bool add_symbol_declaration (CCodeDeclarationSpace decl_space, Symbol sym, string name) {
+ if (decl_space.add_declaration (name)) {
+ return true;
+ }
+ if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
+ // add appropriate include file
+ foreach (string header_filename in sym.get_cheader_filenames ()) {
+ decl_space.add_include (header_filename, !sym.external_package);
+ }
+ // declaration complete
+ return true;
+ } else {
+ // require declaration
+ return false;
+ }
+ }
+
public CCodeIdentifier get_value_setter_function (DataType type_reference) {
var array_type = type_reference as ArrayType;
if (type_reference.data_type != null) {
@@ -736,7 +753,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
public virtual bool generate_enum_declaration (Enum en, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
return false;
}
@@ -839,7 +856,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
public void generate_constant_declaration (Constant c, CCodeDeclarationSpace decl_space, bool definition = false) {
- if (decl_space.add_symbol_declaration (c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
return;
}
@@ -890,7 +907,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
public void generate_field_declaration (Field f, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
return;
}
@@ -1339,7 +1356,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
public void generate_property_accessor_declaration (PropertyAccessor acc, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (acc, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc, acc.get_cname ())) {
return;
}
@@ -4173,7 +4190,7 @@ public class Vala.CCodeBaseModule : CodeGenerator {
}
public virtual void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
diff --git a/codegen/valaccodedeclarationspace.vala b/codegen/valaccodedeclarationspace.vala
index 4ff764096..73b2ff895 100644
--- a/codegen/valaccodedeclarationspace.vala
+++ b/codegen/valaccodedeclarationspace.vala
@@ -40,23 +40,6 @@ public class Vala.CCodeDeclarationSpace {
return false;
}
- public bool add_symbol_declaration (Symbol sym, string name) {
- if (add_declaration (name)) {
- return true;
- }
- if (sym.external_package || (!is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
- // add appropriate include file
- foreach (string header_filename in sym.get_cheader_filenames ()) {
- add_include (header_filename, !sym.external_package);
- }
- // declaration complete
- return true;
- } else {
- // require declaration
- return false;
- }
- }
-
public void add_include (string filename, bool local = false) {
if (!(filename in includes)) {
include_directives.append (new CCodeIncludeDirective (filename, local));
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index e18b1fb5c..3f7b285d6 100644
--- a/codegen/valaccodedelegatemodule.vala
+++ b/codegen/valaccodedelegatemodule.vala
@@ -28,7 +28,7 @@
*/
public class Vala.CCodeDelegateModule : CCodeArrayModule {
public override void generate_delegate_declaration (Delegate d, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
return;
}
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index 0df172f5f..bd47195c1 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -162,7 +162,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
if (m.is_async_callback) {
return;
}
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index 84697a563..6c4b7e969 100644
--- a/codegen/valaccodestructmodule.vala
+++ b/codegen/valaccodestructmodule.vala
@@ -26,7 +26,7 @@ using GLib;
public class Vala.CCodeStructModule : CCodeBaseModule {
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
return;
}
diff --git a/codegen/valadbusclientmodule.vala b/codegen/valadbusclientmodule.vala
index 3d8703ac6..8194336f3 100644
--- a/codegen/valadbusclientmodule.vala
+++ b/codegen/valadbusclientmodule.vala
@@ -1039,7 +1039,7 @@ public class Vala.DBusClientModule : DBusModule {
string lower_cname = iface.get_lower_case_cprefix () + "dbus_proxy";
- if (decl_space.add_symbol_declaration (iface, lower_cname + "_new")) {
+ if (add_symbol_declaration (decl_space, iface, lower_cname + "_new")) {
return;
}
diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala
index 5feabfd7d..1b386800c 100644
--- a/codegen/valadovabasemodule.vala
+++ b/codegen/valadovabasemodule.vala
@@ -375,6 +375,23 @@ public class Vala.DovaBaseModule : CodeGenerator {
}
}
+ public bool add_symbol_declaration (CCodeDeclarationSpace decl_space, Symbol sym, string name) {
+ if (decl_space.add_declaration (name)) {
+ return true;
+ }
+ if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) {
+ // add appropriate include file
+ foreach (string header_filename in sym.get_cheader_filenames ()) {
+ decl_space.add_include (header_filename, !sym.external_package);
+ }
+ // declaration complete
+ return true;
+ } else {
+ // require declaration
+ return false;
+ }
+ }
+
public override void visit_source_file (SourceFile source_file) {
if (csource_filename == null) {
csource_filename = source_file.get_csource_filename ();
@@ -415,7 +432,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
}
public void generate_enum_declaration (Enum en, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
return;
}
@@ -445,7 +462,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
}
public void generate_constant_declaration (Constant c, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
return;
}
@@ -478,7 +495,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
}
public void generate_field_declaration (Field f, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
return;
}
@@ -1768,7 +1785,7 @@ public class Vala.DovaBaseModule : CodeGenerator {
}
public virtual void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
}
diff --git a/codegen/valadovadelegatemodule.vala b/codegen/valadovadelegatemodule.vala
index 3d4672f53..0b41a2a76 100644
--- a/codegen/valadovadelegatemodule.vala
+++ b/codegen/valadovadelegatemodule.vala
@@ -26,7 +26,7 @@
*/
public class Vala.DovaDelegateModule : DovaValueModule {
public override void generate_delegate_declaration (Delegate d, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
return;
}
diff --git a/codegen/valadovaobjectmodule.vala b/codegen/valadovaobjectmodule.vala
index c50a2092f..a32529bf8 100644
--- a/codegen/valadovaobjectmodule.vala
+++ b/codegen/valadovaobjectmodule.vala
@@ -22,7 +22,7 @@
public class Vala.DovaObjectModule : DovaArrayModule {
public override void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
@@ -137,7 +137,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
void generate_class_private_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname () + "Private")) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname () + "Private")) {
return;
}
@@ -306,7 +306,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public void declare_set_value_copy_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_copy")) {
+ 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));
@@ -330,7 +330,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public void declare_set_value_equals_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_equals")) {
+ 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));
@@ -354,7 +354,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public void declare_set_value_hash_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_hash")) {
+ 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));
@@ -378,7 +378,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public void declare_set_value_to_any_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_to_any")) {
+ 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));
@@ -402,7 +402,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public void declare_set_value_from_any_function (CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (type_class, "dova_type_set_value_from_any")) {
+ 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));
@@ -1076,7 +1076,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public override void generate_property_accessor_declaration (PropertyAccessor acc, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (acc.prop, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc.prop, acc.get_cname ())) {
return;
}
@@ -1264,7 +1264,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public override void generate_interface_declaration (Interface iface, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
return;
}
@@ -1311,7 +1311,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
public override void generate_method_declaration (Method m, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
diff --git a/codegen/valadovastructmodule.vala b/codegen/valadovastructmodule.vala
index e934e8071..4dee8f77f 100644
--- a/codegen/valadovastructmodule.vala
+++ b/codegen/valadovastructmodule.vala
@@ -24,7 +24,7 @@ using GLib;
public class Vala.DovaStructModule : DovaBaseModule {
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
return;
}
diff --git a/codegen/valadovavaluemodule.vala b/codegen/valadovavaluemodule.vala
index 08e2ec789..007025f28 100644
--- a/codegen/valadovavaluemodule.vala
+++ b/codegen/valadovavaluemodule.vala
@@ -35,7 +35,7 @@ public class Vala.DovaValueModule : DovaObjectModule {
public override void generate_struct_declaration (Struct st, CCodeDeclarationSpace decl_space) {
base.generate_struct_declaration (st, decl_space);
- if (decl_space.add_symbol_declaration (st, st.get_copy_function ())) {
+ if (add_symbol_declaration (decl_space, st, st.get_copy_function ())) {
return;
}
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index c8fb945b7..50b86fa41 100644
--- a/codegen/valagasyncmodule.vala
+++ b/codegen/valagasyncmodule.vala
@@ -304,7 +304,7 @@ public class Vala.GAsyncModule : GSignalModule {
public override void generate_method_declaration (Method m, CCodeDeclarationSpace decl_space) {
if (m.coroutine) {
- if (decl_space.add_symbol_declaration (m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
return;
}
diff --git a/codegen/valagdbusclientmodule.vala b/codegen/valagdbusclientmodule.vala
index 45c18b6be..7fb8079b3 100644
--- a/codegen/valagdbusclientmodule.vala
+++ b/codegen/valagdbusclientmodule.vala
@@ -172,7 +172,7 @@ public class Vala.GDBusClientModule : GDBusModule {
string get_type_name = "%sproxy_get_type".printf (iface.get_lower_case_cprefix ());
- if (decl_space.add_symbol_declaration (iface, get_type_name)) {
+ if (add_symbol_declaration (decl_space, iface, get_type_name)) {
return;
}
diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala
index 8d22467fb..370d6b8a6 100644
--- a/codegen/valagdbusservermodule.vala
+++ b/codegen/valagdbusservermodule.vala
@@ -1076,7 +1076,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
string register_object_name = "%sregister_object".printf (sym.get_lower_case_cprefix ());
- if (decl_space.add_symbol_declaration (sym, register_object_name)) {
+ if (add_symbol_declaration (decl_space, sym, register_object_name)) {
return;
}
diff --git a/codegen/valagerrormodule.vala b/codegen/valagerrormodule.vala
index dccb21b6d..90e99b1ba 100644
--- a/codegen/valagerrormodule.vala
+++ b/codegen/valagerrormodule.vala
@@ -29,7 +29,7 @@ public class Vala.GErrorModule : CCodeDelegateModule {
private bool is_in_catch = false;
public override void generate_error_domain_declaration (ErrorDomain edomain, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (edomain, edomain.get_cname ())) {
+ if (add_symbol_declaration (decl_space, edomain, edomain.get_cname ())) {
return;
}
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index 7e45efe85..a22fbc430 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -47,7 +47,7 @@ public class Vala.GTypeModule : GErrorModule {
}
public override void generate_class_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
return;
}
@@ -177,7 +177,7 @@ public class Vala.GTypeModule : GErrorModule {
}
public override void generate_class_struct_declaration (Class cl, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (cl, "struct _" + cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, "struct _" + cl.get_cname ())) {
return;
}
@@ -1828,7 +1828,7 @@ public class Vala.GTypeModule : GErrorModule {
}
public override void generate_interface_declaration (Interface iface, CCodeDeclarationSpace decl_space) {
- if (decl_space.add_symbol_declaration (iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
return;
}