function.add_parameter (new CCodeParameter ("length", get_ccode_name (ssize_t_type)));
if (array_type.element_type is GenericType) {
// dup function array elements
- string func_name = "%s_dup_func".printf (((GenericType) array_type.element_type).type_parameter.name.ascii_down ());
- function.add_parameter (new CCodeParameter (func_name, "GBoxedCopyFunc"));
+ function.add_parameter (new CCodeParameter (get_ccode_copy_function (((GenericType) array_type.element_type).type_parameter), "GBoxedCopyFunc"));
}
// definition
if (current_method != null) {
// allow capturing generic type parameters
foreach (var type_param in current_method.get_type_parameters ()) {
- string func_name;
-
- func_name = "%s_type".printf (type_param.name.ascii_down ());
- data.add_field ("GType", func_name);
-
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
- data.add_field ("GBoxedCopyFunc", func_name);
-
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
- data.add_field ("GDestroyNotify", func_name);
+ data.add_field ("GType", get_ccode_type_id (type_param));
+ data.add_field ("GBoxedCopyFunc", get_ccode_copy_function (type_param));
+ data.add_field ("GDestroyNotify", get_ccode_destroy_function (type_param));
}
}
}
if (current_method != null) {
// allow capturing generic type parameters
- var suffices = new string[] {"type", "dup_func", "destroy_func"};
+ var data_var = get_variable_cexpression ("_data%d_".printf (block_id));
foreach (var type_param in current_method.get_type_parameters ()) {
- foreach (string suffix in suffices) {
- string func_name = "%s_%s".printf (type_param.name.ascii_down (), suffix);
- ccode.add_assignment (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), func_name), get_variable_cexpression (func_name));
- }
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, type), get_variable_cexpression (type));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, dup_func), get_variable_cexpression (dup_func));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, destroy_func), get_variable_cexpression (destroy_func));
}
}
}
if (current_method != null) {
// assign captured generic type parameters
foreach (var type_param in current_method.get_type_parameters ()) {
- string func_name;
-
- func_name = "%s_type".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GType", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (outer_block, func_name));
-
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GBoxedCopyFunc", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (outer_block, func_name));
-
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GDestroyNotify", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (outer_block, func_name));
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ ccode.add_declaration ("GType", new CCodeVariableDeclarator (type));
+ ccode.add_declaration ("GBoxedCopyFunc", new CCodeVariableDeclarator (dup_func));
+ ccode.add_declaration ("GDestroyNotify", new CCodeVariableDeclarator (destroy_func));
+ ccode.add_assignment (new CCodeIdentifier (type), new CCodeMemberAccess.pointer (outer_block, type));
+ ccode.add_assignment (new CCodeIdentifier (dup_func), new CCodeMemberAccess.pointer (outer_block, dup_func));
+ ccode.add_assignment (new CCodeIdentifier (destroy_func), new CCodeMemberAccess.pointer (outer_block, destroy_func));
}
}
public CCodeExpression get_type_id_expression (DataType type, bool is_chainup = false) {
if (type is GenericType) {
var type_parameter = ((GenericType) type).type_parameter;
- string identifier = "%s_type".printf (type_parameter.name.ascii_down ());
+ string identifier = get_ccode_type_id (type_parameter);
return get_generic_type_expression (identifier, (GenericType) type, is_chainup);
} else {
string type_id = get_ccode_type_id (type);
return new CCodeIdentifier ("g_error_copy");
} else if (type is GenericType) {
var type_parameter = ((GenericType) type).type_parameter;
- string identifier = "%s_dup_func".printf (type_parameter.name.ascii_down ());
+ string identifier = get_ccode_copy_function (type_parameter);
return get_generic_type_expression (identifier, (GenericType) type, is_chainup);
} else if (type.type_symbol != null) {
string dup_function;
return new CCodeIdentifier ("g_error_free");
} else if (type is GenericType) {
var type_parameter = ((GenericType) type).type_parameter;
- string identifier = "%s_destroy_func".printf (type_parameter.name.ascii_down ());
+ string identifier = get_ccode_destroy_function (type_parameter);
return get_generic_type_expression (identifier, (GenericType) type, is_chainup);
} else if (type.type_symbol != null) {
string unref_function;
int type_param_index = 0;
var cl = (Class) m.parent_symbol;
foreach (TypeParameter type_param in cl.get_type_parameters ()) {
- in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeIdentifier ("%s_type".printf (type_param.name.ascii_down ())));
- in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeIdentifier ("%s_dup_func".printf (type_param.name.ascii_down ())));
- in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeIdentifier ("%s_destroy_func".printf (type_param.name.ascii_down ())));
+ in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeIdentifier (get_ccode_type_id (type_param)));
+ in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeIdentifier (get_ccode_copy_function (type_param)));
+ in_arg_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeIdentifier (get_ccode_destroy_function (type_param)));
type_param_index++;
}
}
if (!current_class.is_compact && current_class.has_type_parameters ()) {
/* type, dup func, and destroy func fields for generic types */
- var suffices = new string[] {"type", "dup_func", "destroy_func"};
+ var priv_access = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv");
foreach (TypeParameter type_param in current_class.get_type_parameters ()) {
- var priv_access = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv");
-
- foreach (string suffix in suffices) {
- var param_name = new CCodeIdentifier ("%s_%s".printf (type_param.name.ascii_down (), suffix));
- ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, param_name.name), param_name);
- }
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, type), new CCodeIdentifier (type));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, dup_func), new CCodeIdentifier (dup_func));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, destroy_func), new CCodeIdentifier (destroy_func));
}
}
// object chainup can't be used as expression
}
// allow capturing generic type parameters
+ var data_var = get_variable_cexpression ("_data%d_".printf (block_id));
foreach (var type_param in m.get_type_parameters ()) {
- string func_name;
-
- func_name = "%s_type".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GType", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), func_name));
-
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GBoxedCopyFunc", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), func_name));
-
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
- ccode.add_declaration ("GDestroyNotify", new CCodeVariableDeclarator (func_name));
- ccode.add_assignment (new CCodeIdentifier (func_name), new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), func_name));
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ ccode.add_declaration ("GType", new CCodeVariableDeclarator (type));
+ ccode.add_declaration ("GBoxedCopyFunc", new CCodeVariableDeclarator (dup_func));
+ ccode.add_declaration ("GDestroyNotify", new CCodeVariableDeclarator (destroy_func));
+ ccode.add_assignment (new CCodeIdentifier (type), new CCodeMemberAccess.pointer (data_var, type));
+ ccode.add_assignment (new CCodeIdentifier (dup_func), new CCodeMemberAccess.pointer (data_var, dup_func));
+ ccode.add_assignment (new CCodeIdentifier (destroy_func), new CCodeMemberAccess.pointer (data_var, destroy_func));
}
} else if (m.parent_symbol is Class && !m.coroutine) {
var cl = (Class) m.parent_symbol;
ccode.add_assignment (get_this_cexpression (), new CCodeCastExpression (ccall, get_ccode_name (cl) + "*"));
/* type, dup func, and destroy func fields for generic types */
+ var priv_access = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv");
foreach (TypeParameter type_param in current_class.get_type_parameters ()) {
- CCodeIdentifier param_name;
- CCodeAssignment assign;
-
- var priv_access = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv");
-
- param_name = new CCodeIdentifier ("%s_type".printf (type_param.name.ascii_down ()));
- assign = new CCodeAssignment (new CCodeMemberAccess.pointer (priv_access, param_name.name), param_name);
- ccode.add_expression (assign);
-
- param_name = new CCodeIdentifier ("%s_dup_func".printf (type_param.name.ascii_down ()));
- assign = new CCodeAssignment (new CCodeMemberAccess.pointer (priv_access, param_name.name), param_name);
- ccode.add_expression (assign);
-
- param_name = new CCodeIdentifier ("%s_destroy_func".printf (type_param.name.ascii_down ()));
- assign = new CCodeAssignment (new CCodeMemberAccess.pointer (priv_access, param_name.name), param_name);
- ccode.add_expression (assign);
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, type), new CCodeIdentifier (type));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, dup_func), new CCodeIdentifier (dup_func));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (priv_access, destroy_func), new CCodeIdentifier (destroy_func));
}
}
} else if (current_type_symbol is Class) {
if (type_parameters != null) {
int type_param_index = 0;
foreach (var type_param in type_parameters) {
- cparam_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeParameter ("%s_type".printf (type_param.name.ascii_down ()), "GType"));
- cparam_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeParameter ("%s_dup_func".printf (type_param.name.ascii_down ()), "GBoxedCopyFunc"));
- cparam_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeParameter ("%s_destroy_func".printf (type_param.name.ascii_down ()), "GDestroyNotify"));
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
+ cparam_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeParameter (type, "GType"));
+ cparam_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeParameter (dup_func, "GBoxedCopyFunc"));
+ cparam_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeParameter (destroy_func, "GDestroyNotify"));
if (carg_map != null) {
- carg_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeIdentifier ("%s_type".printf (type_param.name.ascii_down ())));
- carg_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeIdentifier ("%s_dup_func".printf (type_param.name.ascii_down ())));
- carg_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeIdentifier ("%s_destroy_func".printf (type_param.name.ascii_down ())));
+ carg_map.set (get_param_pos (0.1 * type_param_index + 0.01), new CCodeIdentifier (type));
+ carg_map.set (get_param_pos (0.1 * type_param_index + 0.02), new CCodeIdentifier (dup_func));
+ carg_map.set (get_param_pos (0.1 * type_param_index + 0.03), new CCodeIdentifier (destroy_func));
}
type_param_index++;
}
}
foreach (var type_param in m.get_type_parameters ()) {
- data.add_field ("GType", "%s_type".printf (type_param.name.ascii_down ()));
- data.add_field ("GBoxedCopyFunc", "%s_dup_func".printf (type_param.name.ascii_down ()));
- data.add_field ("GDestroyNotify", "%s_destroy_func".printf (type_param.name.ascii_down ()));
+ data.add_field ("GType", get_ccode_type_id (type_param));
+ data.add_field ("GBoxedCopyFunc", get_ccode_copy_function (type_param));
+ data.add_field ("GDestroyNotify", get_ccode_destroy_function (type_param));
}
if (!(m.return_type is VoidType)) {
emit_context.pop_symbol ();
foreach (var type_param in m.get_type_parameters ()) {
- var type = "%s_type".printf (type_param.name.ascii_down ());
- var dup_func = "%s_dup_func".printf (type_param.name.ascii_down ());
- var destroy_func = "%s_destroy_func".printf (type_param.name.ascii_down ());
+ var type = get_ccode_type_id (type_param);
+ var dup_func = get_ccode_copy_function (type_param);
+ var destroy_func = get_ccode_destroy_function (type_param);
ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, type), new CCodeIdentifier (type));
ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, dup_func), new CCodeIdentifier (dup_func));
ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, destroy_func), new CCodeIdentifier (destroy_func));
private void write_type_parameter (TypeParameter type_parameter, string tag_type) {
write_indent ();
if (tag_type == "property") {
- buffer.append_printf ("<%s name=\"%s-type\" writable=\"1\" construct-only=\"1\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" writable=\"1\" construct-only=\"1\">\n", tag_type, get_ccode_type_id (type_parameter).replace ("_", "-"));
} else {
- buffer.append_printf ("<%s name=\"%s_type\" transfer-ownership=\"none\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" transfer-ownership=\"none\">\n", tag_type, get_ccode_type_id (type_parameter));
}
indent++;
write_indent ();
buffer.append_printf ("</%s>\n", tag_type);
write_indent ();
if (tag_type == "property") {
- buffer.append_printf ("<%s name=\"%s-dup-func\" writable=\"1\" construct-only=\"1\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" writable=\"1\" construct-only=\"1\">\n", tag_type, get_ccode_copy_function (type_parameter).replace ("_", "-"));
} else {
- buffer.append_printf ("<%s name=\"%s_dup_func\" transfer-ownership=\"none\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" transfer-ownership=\"none\">\n", tag_type, get_ccode_copy_function (type_parameter));
}
indent++;
write_indent ();
buffer.append_printf ("</%s>\n", tag_type);
write_indent ();
if (tag_type == "property") {
- buffer.append_printf ("<%s name=\"%s-destroy-func\" writable=\"1\" construct-only=\"1\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" writable=\"1\" construct-only=\"1\">\n", tag_type, get_ccode_destroy_function (type_parameter).replace ("_", "-"));
} else {
- buffer.append_printf ("<%s name=\"%s_destroy_func\" transfer-ownership=\"none\">\n", tag_type, type_parameter.name.ascii_down ());
+ buffer.append_printf ("<%s name=\"%s\" transfer-ownership=\"none\">\n", tag_type, get_ccode_destroy_function (type_parameter));
}
indent++;
write_indent ();
CCodeConstant func_name_constant;
CCodeFunctionCall cinst, cspec;
- var name_prefix = type_param.name.ascii_down ();
- var canonical_prefix = name_prefix.replace ("_", "-");
- func_name = "%s_type".printf (name_prefix);
- func_name_constant = new CCodeConstant ("\"%s-type\"".printf (canonical_prefix));
+ func_name = get_ccode_type_id (type_param);
+ func_name_constant = new CCodeConstant ("\"%s\"".printf (func_name.replace ("_", "-")));
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
prop_enum.add_value (new CCodeEnumValue (enum_value));
- func_name = "%s_dup_func".printf (name_prefix);
- func_name_constant = new CCodeConstant ("\"%s-dup-func\"".printf (canonical_prefix));
+ func_name = get_ccode_copy_function (type_param);
+ func_name_constant = new CCodeConstant ("\"%s\"".printf (func_name.replace ("_", "-")));
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
prop_enum.add_value (new CCodeEnumValue (enum_value));
- func_name = "%s_destroy_func".printf (name_prefix);
- func_name_constant = new CCodeConstant ("\"%s-destroy-func\"".printf (canonical_prefix));
+ func_name = get_ccode_destroy_function (type_param);
+ func_name_constant = new CCodeConstant ("\"%s\"".printf (func_name.replace ("_", "-")));
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
CCodeMemberAccess cfield;
CCodeFunctionCall csetcall;
- func_name = "%s_type".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_type_id (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
ccode.add_expression (csetcall);
ccode.add_break ();
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_copy_function (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
ccode.add_expression (csetcall);
ccode.add_break ();
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_destroy_function (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
CCodeMemberAccess cfield;
CCodeFunctionCall cgetcall;
- func_name = "%s_type".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_type_id (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
ccode.add_assignment (cfield, cgetcall);
ccode.add_break ();
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_copy_function (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
ccode.add_assignment (cfield, cgetcall);
ccode.add_break ();
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
+ func_name = get_ccode_destroy_function (type_param);
enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).ascii_up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
if (is_gtypeinstance) {
/* create type, dup_func, and destroy_func fields for generic types */
foreach (TypeParameter type_param in cl.get_type_parameters ()) {
- string func_name;
-
- func_name = "%s_type".printf (type_param.name.ascii_down ());
- instance_priv_struct.add_field ("GType", func_name);
-
- func_name = "%s_dup_func".printf (type_param.name.ascii_down ());
- instance_priv_struct.add_field ("GBoxedCopyFunc", func_name);
-
- func_name = "%s_destroy_func".printf (type_param.name.ascii_down ());
- instance_priv_struct.add_field ("GDestroyNotify", func_name);
+ instance_priv_struct.add_field ("GType", get_ccode_type_id (type_param));
+ instance_priv_struct.add_field ("GBoxedCopyFunc", get_ccode_copy_function (type_param));
+ instance_priv_struct.add_field ("GDestroyNotify", get_ccode_destroy_function (type_param));
}
}
GenericType p_type = new GenericType (p);
DataType p_data_type = p_type.get_actual_type (SemanticAnalyzer.get_data_type_for_symbol (cl), null, cl);
- add_generic_accessor_function ("get_%s_type".printf (p.name.ascii_down ()),
+ add_generic_accessor_function ("get_%s".printf (get_ccode_type_id (p)),
"GType",
get_type_id_expression (p_data_type),
p, cl, iface);
- add_generic_accessor_function ("get_%s_dup_func".printf (p.name.ascii_down ()),
+ add_generic_accessor_function ("get_%s".printf (get_ccode_copy_function (p)),
"GBoxedCopyFunc",
get_dup_func_expression (p_data_type, null),
p, cl, iface);
- add_generic_accessor_function ("get_%s_destroy_func".printf (p.name.ascii_down ()),
+ add_generic_accessor_function ("get_%s".printf (get_ccode_destroy_function (p)),
"GDestroyNotify",
get_destroy_func_expression (p_data_type),
p, cl, iface);
if (iface.get_attribute ("GenericAccessors") != null) {
foreach (TypeParameter p in iface.get_type_parameters ()) {
- string method_name = "get_%s_type".printf (p.name.ascii_down ());
- var vdeclarator = new CCodeFunctionDeclarator (method_name);
+ var vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (get_ccode_type_id (p)));
var this_type = SemanticAnalyzer.get_data_type_for_symbol (iface);
vdeclarator.add_parameter (new CCodeParameter ("self", get_ccode_name (this_type)));
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
- method_name = "get_%s_dup_func".printf (p.name.ascii_down ());
- vdeclarator = new CCodeFunctionDeclarator (method_name);
+ vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (get_ccode_copy_function (p)));
this_type = SemanticAnalyzer.get_data_type_for_symbol (iface);
vdeclarator.add_parameter (new CCodeParameter ("self", get_ccode_name (this_type)));
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
- method_name = "get_%s_destroy_func".printf (p.name.ascii_down ());
- vdeclarator = new CCodeFunctionDeclarator (method_name);
+ vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (get_ccode_destroy_function (p)));
this_type = SemanticAnalyzer.get_data_type_for_symbol (iface);
vdeclarator.add_parameter (new CCodeParameter ("self", get_ccode_name (this_type)));