]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Move add_symbol_declaration out of CCodeDeclarationSpace
authorJürg Billeter <j@bitron.ch>
Fri, 13 Aug 2010 11:08:36 +0000 (13:08 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 21 Aug 2010 09:18:13 +0000 (11:18 +0200)
16 files changed:
codegen/valaccodebasemodule.vala
codegen/valaccodedeclarationspace.vala
codegen/valaccodedelegatemodule.vala
codegen/valaccodemethodmodule.vala
codegen/valaccodestructmodule.vala
codegen/valadbusclientmodule.vala
codegen/valadovabasemodule.vala
codegen/valadovadelegatemodule.vala
codegen/valadovaobjectmodule.vala
codegen/valadovastructmodule.vala
codegen/valadovavaluemodule.vala
codegen/valagasyncmodule.vala
codegen/valagdbusclientmodule.vala
codegen/valagdbusservermodule.vala
codegen/valagerrormodule.vala
codegen/valagtypemodule.vala

index 2b9a9ab9a2cacc2efb8ac790c415ee39c610dbd1..ef145a9ad5ec8bef17da282b87c13ae86d798348 100644 (file)
@@ -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;
                }
        }
index 4ff76409644ba5aa28983dde68df7fe0f8e48011..73b2ff895c02279206ee90bfdc05f5380d3ba655 100644 (file)
@@ -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));
index e18b1fb5ccbefa7615362a3713af5bfdaed3ce62..3f7b285d6550327cdcb1d5388e918823f0b71556 100644 (file)
@@ -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;
                }
 
index 0df172f5f973b42469c0ade5fd592d466879c2c0..bd47195c186a157c80be9f047eb90b766c3540a3 100644 (file)
@@ -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;
                }
 
index 84697a5630052af924942415e93a16172dd37392..6c4b7e969aaac4c419354ca891eff4d3a8f84e88 100644 (file)
@@ -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;
                }
 
index 3d8703ac6309639ee47924b4f7f0ea53c204f808..8194336f3c86dd45bb42b9ab0fbe6a6939225ce4 100644 (file)
@@ -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;
                }
 
index 5feabfd7d4afce77f4fe696841744be1d81d20f2..1b386800ca06e935a8949b5ab759da935efe25d9 100644 (file)
@@ -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;
                }
        }
index 3d4672f535e9c3b7d0393814b19a3158df6a9296..0b41a2a7623ae1781a32dc3a804b5f4fc02e33a5 100644 (file)
@@ -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;
                }
 
index c50a2092f32a8108ee0585449d2fd415eacda18b..a32529bf89e7bfc0a63c80dce70c0746c8918b9b 100644 (file)
@@ -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;
                }
 
index e934e8071c61aa840b4599ccee070eac7079b61c..4dee8f77f47ee1d7ce8e279c3088240470f1dad5 100644 (file)
@@ -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;
                }
 
index 08e2ec7895ba40ce8b8af2790f6943f102c6ac5a..007025f280b315850658fc15eec870eb1f4ade92 100644 (file)
@@ -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;
                }
 
index c8fb945b730c4855a55d53ba2563c4f9c3a56bf1..50b86fa414d27c16eebb1cad47f4c5dba9aad243 100644 (file)
@@ -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;
                        }
 
index 45c18b6be3d55d6cb6dd92412b38032dd2e44621..7fb8079b3e5d0decbeac0ac63a7502d37ee5ff0e 100644 (file)
@@ -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;
                }
 
index 8d22467fb5c4067cf44bbaa2ccddc4e2cb4ade4d..370d6b8a6c5448cc150c3b9c899fd6b4147f066f 100644 (file)
@@ -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;
                }
 
index dccb21b6ddbaf6859e580cd3e1bd18e7a6f5d58f..90e99b1bade2f872dea4d961bd0379488a40c05d 100644 (file)
@@ -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;
                }
 
index 7e45efe8597871f2c0b407285a5bad44168d2768..a22fbc430f6dca0a1e862cfda5504cba367b01a3 100644 (file)
@@ -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;
                }