]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
libvaladoc/api: Add finalize and free function names to Api.Class
authorFlorian Brosch <flo.brosch@gmail.com>
Fri, 17 Aug 2012 00:14:40 +0000 (02:14 +0200)
committerFlorian Brosch <flo.brosch@gmail.com>
Fri, 17 Aug 2012 00:36:37 +0000 (02:36 +0200)
src/driver/0.10.x/treebuilder.vala
src/driver/0.12.x/treebuilder.vala
src/driver/0.14.x/treebuilder.vala
src/driver/0.16.x/treebuilder.vala
src/driver/0.18.x/treebuilder.vala
src/libvaladoc/api/class.vala

index 6df37bc7319e1eaf735665270f259dca6f7bf445..01f22f16872a8a79f992274fabac2eb26a239684 100644 (file)
@@ -323,6 +323,22 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return "%s_GET_INTERFACE".printf (element.get_upper_case_cname ());
        }
 
+       private string? get_free_function_name (Vala.Class element) {
+               if (!element.is_compact) {
+                       return null;
+               }
+
+               return element.get_free_function ();
+       }
+
+       private string? get_finalize_function_name (Vala.Class element) {
+               if (!element.is_fundamental ()) {
+                       return null;
+               }
+
+               return "%s_finalize".printf (element.get_lower_case_cname ());
+       }
+
        private string get_quark_function_name (Vala.ErrorDomain element) {
                return element.get_lower_case_cprefix () + "quark";
        }
@@ -860,7 +876,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_class == null && element.name == "string";
 
-               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, element.get_cname (), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), element.get_type_id (), element.get_param_spec_function (), element.get_ref_function (), element.get_unref_function (), element.get_take_value_function (), element.get_get_value_function (), element.get_set_value_function (), element.is_fundamental (), element.is_abstract, is_basic_type, element);
+               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, element.get_cname (), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), element.get_type_id (), element.get_param_spec_function (), element.get_ref_function (), element.get_unref_function (), get_free_function_name (element), get_finalize_function_name (element), element.get_take_value_function (), element.get_get_value_function (), element.get_set_value_function (), element.is_fundamental (), element.is_abstract, is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index b25e576246d4a65f2e02ab966a227ebd26ed06bf..f67d6427941a5920a2ab292efae1abf08b2edc74 100644 (file)
@@ -240,6 +240,22 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                }
        }
 
+       private string? get_free_function_name (Vala.Class element) {
+               if (!element.is_compact) {
+                       return null;
+               }
+
+               return element.get_free_function ();
+       }
+
+       private string? get_finalize_function_name (Vala.Class element) {
+               if (!element.is_fundamental ()) {
+                       return null;
+               }
+
+               return "%s_finalize".printf (element.get_lower_case_cname ());
+       }
+
        private string? get_quark_macro_name (Vala.ErrorDomain element) {
                return element.get_upper_case_cname ();
        }
@@ -911,7 +927,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_class == null && element.name == "string";
 
-               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, element.get_cname (), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), element.get_type_id (), element.get_param_spec_function (), element.get_ref_function (), element.get_unref_function (), element.get_take_value_function (), element.get_get_value_function (), element.get_set_value_function (), element.is_fundamental (), element.is_abstract, is_basic_type, element);
+               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, element.get_cname (), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), element.get_type_id (), element.get_param_spec_function (), element.get_ref_function (), element.get_unref_function (), get_free_function_name (element), get_finalize_function_name (element), element.get_take_value_function (), element.get_get_value_function (), element.get_set_value_function (), element.is_fundamental (), element.is_abstract, is_basic_type, element);
 
                symbol_map.set (element, node);
                parent.add_child (node);
index 870079400f173c94faa3ad68863af21b860d1709..795aa97977165e86d9c7a789b5ed9c963bce5591 100644 (file)
@@ -274,6 +274,30 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 #endif
        }
 
+       private string? get_finalize_function_name (Vala.Class element) {
+               if (!element.is_fundamental ()) {
+                       return null;
+               }
+
+#if VALA_0_13_0 || VALA_0_13_1
+               return "%s_finalize".printf (element.get_lower_case_cname ());
+#else
+               return "%s_finalize".printf (Vala.CCodeBaseModule.get_ccode_lower_case_name (element, null));
+#endif
+       }
+
+       private string? get_free_function_name (Vala.Class element) {
+               if (!element.is_compact) {
+                       return null;
+               }
+
+#if VALA_0_13_0 || VALA_0_13_1
+               return element.get_free_function ();
+#else
+               return Vala.CCodeBaseModule.get_ccode_free_function (element);
+#endif
+       }
+
        private string get_finish_name (Vala.Method m) {
 #if VALA_0_13_0 || VALA_0_13_1
                return m.get_finish_cname ();
@@ -1015,7 +1039,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_class == null && element.name == "string";
 
-               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
+               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_free_function_name (element), get_finalize_function_name (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
 
                symbol_map.set (element, node);
                parent.add_child (node);
index 5c6d5ab9a5f7f5a724f30b3f5d889ed3b8983acc..8bf06f310e8d4bfe02abb7f077db323a7d82a139 100644 (file)
@@ -260,6 +260,22 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return Vala.CCodeBaseModule.get_ccode_unref_function (sym);
        }
 
+       private string? get_finalize_function_name (Vala.Class element) {
+               if (!element.is_fundamental ()) {
+                       return null;
+               }
+
+               return "%s_finalize".printf (Vala.CCodeBaseModule.get_ccode_lower_case_name (element, null));
+       }
+
+       private string? get_free_function_name (Vala.Class element) {
+               if (!element.is_compact) {
+                       return null;
+               }
+
+               return Vala.CCodeBaseModule.get_ccode_free_function (element);
+       }
+
        private string? get_finish_name (Vala.Method m) {
                return Vala.CCodeBaseModule.get_ccode_finish_name (m);
        }
@@ -931,7 +947,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_class == null && element.name == "string";
 
-               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
+               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_free_function_name (element), get_finalize_function_name (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
 
                symbol_map.set (element, node);
                parent.add_child (node);
index 055ab20d2437fb62d3485ff0442fe6b50fbeacbc..37f44bd9d1f69fe0d93987c987cbf2f96655b488 100644 (file)
@@ -264,6 +264,22 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return Vala.CCodeBaseModule.get_ccode_unref_function (sym);
        }
 
+       private string? get_finalize_function_name (Vala.Class element) {
+               if (!element.is_fundamental ()) {
+                       return null;
+               }
+
+               return "%s_finalize".printf (Vala.CCodeBaseModule.get_ccode_lower_case_name (element, null));
+       }
+
+       private string? get_free_function_name (Vala.Class element) {
+               if (!element.is_compact) {
+                       return null;
+               }
+
+               return Vala.CCodeBaseModule.get_ccode_free_function (element);
+       }
+
        private string? get_finish_name (Vala.Method m) {
                return Vala.CCodeBaseModule.get_ccode_finish_name (m);
        }
@@ -947,7 +963,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_class == null && element.name == "string";
 
-               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
+               Class node = new Class (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_private_cname (element), get_class_macro_name (element), get_type_macro_name (element), get_is_type_macro_name (element), get_type_cast_macro_name (element), get_type_function_name (element), get_class_type_macro_name (element), get_is_class_type_macro_name (element), Vala.GDBusModule.get_dbus_name (element), get_ccode_type_id (element), get_param_spec_function (element), get_ref_function (element), get_unref_function (element), get_free_function_name (element), get_finalize_function_name (element), get_take_value_function (element), get_get_value_function (element), get_set_value_function (element), element.is_fundamental (), element.is_abstract, is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index 273f249b797b6e4e45d316e5ab1cfca7e0923518..0c5a7a5c1eefb987da280140d56069a22349fd2e 100644 (file)
@@ -35,8 +35,10 @@ public class Valadoc.Api.Class : TypeSymbol {
        private string? get_value_function_cname;
        private string? set_value_function_cname;
        private string? unref_function_name;
-       private string? param_spec_function_name;
        private string? ref_function_name;
+       private string? free_function_name;
+       private string? finalize_function_name;
+       private string? param_spec_function_name;
        private string? type_id;
        private string? is_class_type_macro_name;
        private string? class_type_macro_name;
@@ -44,7 +46,7 @@ public class Valadoc.Api.Class : TypeSymbol {
        private string? private_cname;
        private string? cname;
 
-       public Class (Node parent, SourceFile file, string name, SymbolAccessibility accessibility, SourceComment? comment, string? cname, string? private_cname, string? class_macro_name, string? type_macro_name, string? is_type_macro_name, string? type_cast_macro_name, string? type_function_name, string? class_type_macro_name, string? is_class_type_macro_name, string? dbus_name, string? type_id, string? param_spec_function_name, string? ref_function_name, string? unref_function_name, string? take_value_function_cname, string? get_value_function_cname, string? set_value_function_cname, bool is_fundamental, bool is_abstract, bool is_basic_type, void* data) {
+       public Class (Node parent, SourceFile file, string name, SymbolAccessibility accessibility, SourceComment? comment, string? cname, string? private_cname, string? class_macro_name, string? type_macro_name, string? is_type_macro_name, string? type_cast_macro_name, string? type_function_name, string? class_type_macro_name, string? is_class_type_macro_name, string? dbus_name, string? type_id, string? param_spec_function_name, string? ref_function_name, string? unref_function_name, string? free_function_name, string? finalize_function_name, string? take_value_function_cname, string? get_value_function_cname, string? set_value_function_cname, bool is_fundamental, bool is_abstract, bool is_basic_type, void* data) {
                base (parent, file, name, accessibility, comment, type_macro_name, is_type_macro_name, type_cast_macro_name, type_function_name, is_basic_type, data);
 
                this.interfaces = new ArrayList<TypeReference> ();
@@ -61,6 +63,8 @@ public class Valadoc.Api.Class : TypeSymbol {
 
                this.unref_function_name = unref_function_name;
                this.ref_function_name = ref_function_name;
+               this.finalize_function_name = finalize_function_name;
+               this.free_function_name = free_function_name;
 
                this.take_value_function_cname = take_value_function_cname;
                this.get_value_function_cname = get_value_function_cname;
@@ -121,6 +125,26 @@ public class Valadoc.Api.Class : TypeSymbol {
                return unref_function_name;
        }
 
+       /**
+        * Returns the C function name that frees the
+        * instances of this data type.
+        *
+        * @return the name of the C function or null
+        */
+       public string? get_free_function_name () {
+               return free_function_name;
+       }
+
+       /**
+        * Returns the C function name that finalizes the
+        * instances of this data type.
+        *
+        * @return the name of the C function or null
+        */
+       public string? get_finalize_function_name () {
+               return finalize_function_name;
+       }
+
        /**
         * Returns the cname of the GValue parameter spec function.
         */