#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;
#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 ();
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);
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);
}
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);
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);
}
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);
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);
}
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);
*/
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;
}
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.
*/
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}
*/