]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
libvaladoc: Add Struct.copy_function_cname, Struct.destroy_function_cname
authorFlorian Brosch <flo.brosch@gmail.com>
Thu, 7 Feb 2013 18:13:11 +0000 (19:13 +0100)
committerFlorian Brosch <flo.brosch@gmail.com>
Thu, 7 Feb 2013 18:17:15 +0000 (19:17 +0100)
src/driver/0.14.x/treebuilder.vala
src/driver/0.16.x/treebuilder.vala
src/driver/0.18.x/treebuilder.vala
src/driver/0.20.x/treebuilder.vala
src/libvaladoc/api/struct.vala

index c35de4c82da2d8d783a3b86858a7fc58abc8865e..6cbec291e0cd72b25ebdd712c2fdf8d83dec7127 100644 (file)
@@ -287,6 +287,14 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 #endif
        }
 
+       private string? get_struct_destroy_function (Vala.Struct element) {
+#if VALA_0_13_0 || VALA_0_13_1
+               return element.get_destroy_function ();
+#else
+               return Vala.CCodeBaseModule.get_ccode_destroy_function (element);
+#endif
+       }
+
        private string? get_free_function_name (Vala.Class element) {
                if (!element.is_compact) {
                        return null;
@@ -352,6 +360,14 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 #endif
        }
 
+       private string? get_copy_function (Vala.TypeSymbol sym) {
+#if VALA_0_13_0 || VALA_0_13_1
+               return sym.get_copy_function ();
+#else
+               return Vala.CCodeBaseModule.get_ccode_copy_function (sym);
+#endif
+       }
+
        private string get_free_function (Vala.TypeSymbol sym) {
 #if VALA_0_13_0 || VALA_0_13_1
                return sym.get_free_function ();
@@ -1101,7 +1117,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_type == null && (element.is_boolean_type () || element.is_floating_type () || element.is_integer_type ());
 
-               Struct node = new Struct (parent, file, element.name, get_access_modifier(element), comment, get_cname(element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_free_function (element), is_basic_type, element);
+               Struct node = new Struct (parent, file, element.name, get_access_modifier(element), comment, get_cname(element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_copy_function (element), get_struct_destroy_function (element), get_free_function (element), is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index b090d4905c26a20938bcad6f2259d3d227f6f4ac..96cece0ffa98d2a6f27ed7b13d4078424294fd04 100644 (file)
@@ -302,6 +302,14 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return Vala.CCodeBaseModule.get_ccode_dup_function (sym);
        }
 
+       private string? get_copy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_copy_function (sym);
+       }
+
+       private string? get_destroy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_destroy_function (sym);
+       }
+
        private string? get_free_function (Vala.TypeSymbol sym) {
                return Vala.CCodeBaseModule.get_ccode_free_function (sym);
        }
@@ -1009,7 +1017,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_type == null && (element.is_boolean_type () || element.is_floating_type () || element.is_integer_type ());
 
-               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_free_function (element), is_basic_type, element);
+               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_copy_function (element), get_destroy_function (element), get_free_function (element), is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index d536f4b1d5f2830f66f4ec293a2f7dde6ecf8cb9..c597f274d25cb025703c8a3ae1067f2008ead823 100644 (file)
@@ -307,6 +307,14 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return Vala.CCodeBaseModule.get_ccode_dup_function (sym);
        }
 
+       private string? get_copy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_copy_function (sym);
+       }
+
+       private string? get_destroy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_destroy_function (sym);
+       }
+
        private string? get_free_function (Vala.TypeSymbol sym) {
                return Vala.CCodeBaseModule.get_ccode_free_function (sym);
        }
@@ -1025,7 +1033,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_type == null && (element.is_boolean_type () || element.is_floating_type () || element.is_integer_type ());
 
-               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_free_function (element), is_basic_type, element);
+               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_copy_function (element), get_destroy_function (element), get_free_function (element), is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index f9f8fef6f01ad50a28ef3f73e3ceb50d8c6d3a61..4deb22410879ad812794e6c02fdd1f4edb23b024 100644 (file)
@@ -299,6 +299,14 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                return Vala.CCodeBaseModule.get_ccode_dup_function (sym);
        }
 
+       private string? get_copy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_copy_function (sym);
+       }
+
+       private string? get_destroy_function (Vala.TypeSymbol sym) {
+               return Vala.CCodeBaseModule.get_ccode_destroy_function (sym);
+       }
+
        private string? get_free_function (Vala.TypeSymbol sym) {
                return Vala.CCodeBaseModule.get_ccode_free_function (sym);
        }
@@ -987,7 +995,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                bool is_basic_type = element.base_type == null && (element.is_boolean_type () || element.is_floating_type () || element.is_integer_type ());
 
-               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_free_function (element), is_basic_type, element);
+               Struct node = new Struct (parent, file, element.name, get_access_modifier (element), comment, get_cname (element), get_type_macro_name (element), get_type_function_name (element), get_ccode_type_id (element), get_dup_function (element), get_copy_function (element), get_destroy_function (element), get_free_function (element), is_basic_type, element);
                symbol_map.set (element, node);
                parent.add_child (node);
 
index 475f6d808181e3c9971e492e5b03ca49297df638..9910994dede233b5c3992343659d2c6f0311001b 100644 (file)
@@ -29,15 +29,19 @@ using Valadoc.Content;
  */
 public class Valadoc.Api.Struct : TypeSymbol {
        private string? dup_function_cname;
+       private string? copy_function_cname;
        private string? free_function_cname;
+       private string? destroy_function_cname;
        private string? type_id;
        private string? cname;
 
-       public Struct (Node parent, SourceFile file, string name, SymbolAccessibility accessibility, SourceComment? comment, string? cname, string? type_macro_name, string? type_function_name, string? type_id, string? dup_function_cname, string? free_function_cname, bool is_basic_type, void* data) {
+       public Struct (Node parent, SourceFile file, string name, SymbolAccessibility accessibility, SourceComment? comment, string? cname, string? type_macro_name, string? type_function_name, string? type_id, string? dup_function_cname, string? copy_function_cname, string? destroy_function_cname, string? free_function_cname, bool is_basic_type, void* data) {
                base (parent, file, name, accessibility, comment, type_macro_name, null, null, type_function_name, is_basic_type, data);
 
                this.dup_function_cname = dup_function_cname;
+               this.copy_function_cname = copy_function_cname;
                this.free_function_cname = free_function_cname;
+               this.destroy_function_cname = destroy_function_cname;
 
                this.cname = cname;
        }
@@ -73,6 +77,14 @@ public class Valadoc.Api.Struct : TypeSymbol {
                return dup_function_cname;
        }
 
+       /**
+        * Returns the C function name that copies instances of this data
+        * type.
+        */
+       public string? get_copy_function_cname () {
+               return copy_function_cname;
+       }
+
        /**
         * Returns the C function name that frees instances of this data type.
         */
@@ -80,6 +92,13 @@ public class Valadoc.Api.Struct : TypeSymbol {
                return free_function_cname;
        }
 
+       /**
+        * Returns the C function name that destroys instances of this data type.
+        */
+       public string? get_destroy_function_cname () {
+               return destroy_function_cname;
+       }
+
        /**
         * {@inheritDoc}
         */