gnew = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
} else {
gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
- gnew.add_argument (new CCodeIdentifier (expr.element_type.get_cname ()));
+ gnew.add_argument (new CCodeIdentifier (get_ccode_name (expr.element_type)));
}
bool first = true;
if (context.profile == Profile.POSIX) {
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (expr.element_type.get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (expr.element_type)));
gnew.add_argument (csizeof);
}
}
public override string get_parameter_array_length_cname (Parameter param, int dim) {
- if (param.has_array_length_cname) {
- return param.get_array_length_cname ();
+ if (get_ccode_array_length_name (param) != null) {
+ return get_ccode_array_length_name (param);
} else {
return get_array_length_cname (get_variable_cname (param.name), dim);
}
}
public override string? append_struct_array_free (Struct st) {
- string cname = "_vala_%s_array_free".printf (st.get_cname ());;
+ string cname = "_vala_%s_array_free".printf (get_ccode_name (st));
if (cfile.add_declaration (cname)) {
return cname;
var fun = new CCodeFunction (cname, "void");
fun.modifiers = CCodeModifiers.STATIC;
- fun.add_parameter (new CCodeParameter ("array", "%s*".printf (st.get_cname ())));
+ fun.add_parameter (new CCodeParameter ("array", "%s*".printf (get_ccode_name (st))));
fun.add_parameter (new CCodeParameter ("array_length", "gint"));
push_function (fun);
// declaration
- var function = new CCodeFunction (dup_func, array_type.get_cname ());
+ var function = new CCodeFunction (dup_func, get_ccode_name (array_type));
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", array_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (array_type)));
// total length over all dimensions
function.add_parameter (new CCodeParameter ("length", "int"));
if (array_type.element_type is GenericType) {
if (requires_copy (array_type.element_type)) {
var cvardecl = new CCodeVariableDeclarator ("result");
var gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
- gnew.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ gnew.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
CCodeExpression length_expr = new CCodeIdentifier ("length");
// add extra item to have array NULL-terminated for all reference types
}
gnew.add_argument (length_expr);
- ccode.add_declaration (array_type.get_cname (), cvardecl);
+ ccode.add_declaration (get_ccode_name (array_type), cvardecl);
ccode.add_assignment (new CCodeIdentifier ("result"), gnew);
ccode.add_declaration ("int", new CCodeVariableDeclarator ("i"));
dup_call.add_argument (new CCodeIdentifier ("self"));
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
dup_call.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.MUL, new CCodeIdentifier ("length"), sizeof_call));
ccode.add_return (dup_call);
var function = new CCodeFunction (dup_func, "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", array_type.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("dest", array_type.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (array_type) + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (array_type) + "*"));
// definition
dup_call.add_argument (new CCodeIdentifier ("self"));
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
dup_call.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.MUL, new CCodeConstant ("%d".printf (array_type.length)), sizeof_call));
ccode.add_expression (dup_call);
var function = new CCodeFunction (add_func, "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("array", array_type.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("array", get_ccode_name (array_type) + "*"));
function.add_parameter (new CCodeParameter ("length", "int*"));
function.add_parameter (new CCodeParameter ("size", "int*"));
push_function (function);
- string typename = array_type.element_type.get_cname ();
+ string typename = get_ccode_name (array_type.element_type);
CCodeExpression value = new CCodeIdentifier ("value");
if (array_type.element_type.is_real_struct_type ()) {
if (!array_type.element_type.nullable || !array_type.element_type.value_owned) {
var size = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("size"));
var renew_call = new CCodeFunctionCall (new CCodeIdentifier ("g_renew"));
- renew_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ renew_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
renew_call.add_argument (array);
if (array_type.element_type.is_reference_type_or_type_parameter ()) {
// NULL terminate array
return base.generate_parameter (param, decl_space, cparam_map, carg_map);
}
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
if (param.direction != ParameterDirection.IN) {
ctypename += "*";
generate_type_declaration (array_type.element_type, decl_space);
- cparam_map.set (get_param_pos (param.cparameter_position), main_cparam);
+ cparam_map.set (get_param_pos (get_ccode_pos (param)), main_cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cparameter_position), get_variable_cexpression (param.name));
+ carg_map.set (get_param_pos (get_ccode_pos (param)), get_variable_cexpression (param.name));
}
- if (!param.no_array_length) {
+ if (get_ccode_array_length (param)) {
string length_ctype = "int";
- if (param.array_length_type != null) {
- length_ctype = param.array_length_type;
+ if (get_ccode_array_length_type (param) != null) {
+ length_ctype = get_ccode_array_length_type (param);
}
if (param.direction != ParameterDirection.IN) {
length_ctype = "%s*".printf (length_ctype);
for (int dim = 1; dim <= array_type.rank; dim++) {
var cparam = new CCodeParameter (get_parameter_array_length_cname (param, dim), length_ctype);
- cparam_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), cparam);
+ cparam_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), get_variable_cexpression (cparam.name));
}
}
}
// it is necessary to use memcpy for fixed-length (stack-allocated) arrays
// simple assignments do not work in C
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
var size = new CCodeBinaryExpression (CCodeBinaryOperator.MUL, new CCodeConstant ("%d".printf (array_type.length)), sizeof_call);
var ccopy = new CCodeFunctionCall (new CCodeIdentifier ("memcpy"));
public Map<string,string> variable_name_map { get { return emit_context.variable_name_map; } }
+ public static int ccode_attribute_cache_index = CodeNode.get_attribute_cache_index ();
+
public CCodeBaseModule () {
predefined_marshal_set = new HashSet<string> (str_hash, str_equal);
predefined_marshal_set.add ("VOID:VOID");
}
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 ()) {
+ foreach (string header_filename in get_ccode_header_filenames (sym).split (",")) {
decl_space.add_include (header_filename, !sym.external_package);
}
// declaration complete
public CCodeIdentifier get_value_setter_function (DataType type_reference) {
var array_type = type_reference as ArrayType;
if (type_reference.data_type != null) {
- return new CCodeIdentifier (type_reference.data_type.get_set_value_function ());
+ return new CCodeIdentifier (get_ccode_set_value_function (type_reference.data_type));
} else if (array_type != null && array_type.element_type.data_type == string_type.data_type) {
// G_TYPE_STRV
return new CCodeIdentifier ("g_value_set_boxed");
public CCodeIdentifier get_value_taker_function (DataType type_reference) {
var array_type = type_reference as ArrayType;
if (type_reference.data_type != null) {
- return new CCodeIdentifier (type_reference.data_type.get_take_value_function ());
+ return new CCodeIdentifier (get_ccode_take_value_function (type_reference.data_type));
} else if (array_type != null && array_type.element_type.data_type == string_type.data_type) {
// G_TYPE_STRV
return new CCodeIdentifier ("g_value_take_boxed");
CCodeIdentifier get_value_getter_function (DataType type_reference) {
var array_type = type_reference as ArrayType;
if (type_reference.data_type != null) {
- return new CCodeIdentifier (type_reference.data_type.get_get_value_function ());
+ return new CCodeIdentifier (get_ccode_get_value_function (type_reference.data_type));
} else if (array_type != null && array_type.element_type.data_type == string_type.data_type) {
// G_TYPE_STRV
return new CCodeIdentifier ("g_value_get_boxed");
}
public virtual bool generate_enum_declaration (Enum en, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, get_ccode_name (en))) {
return false;
}
- var cenum = new CCodeEnum (en.get_cname ());
+ var cenum = new CCodeEnum (get_ccode_name (en));
cenum.deprecated = en.deprecated;
foreach (EnumValue ev in en.get_values ()) {
CCodeEnumValue c_ev;
if (ev.value == null) {
- c_ev = new CCodeEnumValue (ev.get_cname ());
+ c_ev = new CCodeEnumValue (get_ccode_name (ev));
if (en.is_flags) {
c_ev.value = new CCodeConstant ("1 << %d".printf (flag_shift));
flag_shift += 1;
}
} else {
ev.value.emit (this);
- c_ev = new CCodeEnumValue (ev.get_cname (), get_cvalue (ev.value));
+ c_ev = new CCodeEnumValue (get_ccode_name (ev), get_cvalue (ev.value));
}
c_ev.deprecated = ev.deprecated;
cenum.add_value (c_ev);
decl_space.add_type_definition (cenum);
decl_space.add_type_definition (new CCodeNewline ());
- if (!en.has_type_id) {
+ if (!get_ccode_has_type_id (en)) {
return true;
}
decl_space.add_type_declaration (new CCodeNewline ());
- var macro = "(%s_get_type ())".printf (en.get_lower_case_cname (null));
- decl_space.add_type_declaration (new CCodeMacroReplacement (en.get_type_id (), macro));
+ var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (en, null));
+ decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (en), macro));
- var fun_name = "%s_get_type".printf (en.get_lower_case_cname (null));
+ var fun_name = "%s_get_type".printf (get_ccode_lower_case_name (en, null));
var regfun = new CCodeFunction (fun_name, "GType");
regfun.attributes = "G_GNUC_CONST";
} else if (m.is_class_member ()) {
TypeSymbol parent = (TypeSymbol)m.parent_symbol;
- var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf(parent.get_upper_case_cname ())));
+ var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf(get_ccode_upper_case_name (parent))));
get_class_private_call.add_argument (new CCodeIdentifier ("klass"));
l = new CCodeMemberAccess.pointer (get_class_private_call, get_symbol_lock_name (m.name));
} else {
- l = new CCodeIdentifier (get_symbol_lock_name ("%s_%s".printf(m.parent_symbol.get_lower_case_cname (), m.name)));
+ l = new CCodeIdentifier (get_symbol_lock_name ("%s_%s".printf(get_ccode_lower_case_name (m.parent_symbol), m.name)));
}
push_context (init_context);
- var initf = new CCodeFunctionCall (new CCodeIdentifier (mutex_type.default_construction_method.get_cname ()));
+ var initf = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (mutex_type.default_construction_method)));
initf.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, l));
ccode.add_expression (initf);
pop_context ();
return;
}
- if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, get_ccode_name (c))) {
return;
}
var initializer_list = c.value as InitializerList;
if (initializer_list != null) {
- var cdecl = new CCodeDeclaration (c.type_reference.get_const_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_const_name (c.type_reference));
var arr = "";
if (c.type_reference is ArrayType) {
arr = "[%d]".printf (initializer_list.size);
cinitializer = null;
}
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), cinitializer));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (get_ccode_name (c), arr), cinitializer));
if (c.is_private_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
decl_space.add_constant_declaration (cdecl);
} else {
- var cdefine = new CCodeMacroReplacement.with_expression (c.get_cname (), get_cvalue (c.value));
+ var cdefine = new CCodeMacroReplacement.with_expression (get_ccode_name (c), get_cvalue (c.value));
decl_space.add_type_member_declaration (cdefine);
}
}
c.value.emit (this);
- string type_name = c.type_reference.get_const_cname ();
+ string type_name = get_ccode_const_name (c.type_reference);
string arr = "";
if (c.type_reference is ArrayType) {
arr = "[]";
var cinitializer = get_cvalue (c.value);
- ccode.add_declaration (type_name, new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), cinitializer), CCodeModifiers.STATIC);
+ ccode.add_declaration (type_name, new CCodeVariableDeclarator ("%s%s".printf (get_ccode_name (c), arr), cinitializer), CCodeModifiers.STATIC);
} else {
generate_constant_declaration (c, cfile, true);
}
public void generate_field_declaration (Field f, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, get_ccode_name (f))) {
return;
}
generate_type_declaration (f.variable_type, decl_space);
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
var cdecl = new CCodeDeclaration (field_ctype);
- cdecl.add_declarator (new CCodeVariableDeclarator (f.get_cname (), null, f.variable_type.get_cdeclarator_suffix ()));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_ccode_name (f), null, f.variable_type.get_cdeclarator_suffix ()));
if (f.is_private_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
if (f.get_lock_used ()) {
// Declare mutex for static member
- var flock = new CCodeDeclaration (mutex_type.get_cname ());
- var flock_decl = new CCodeVariableDeclarator (get_symbol_lock_name (f.get_cname ()), new CCodeConstant ("{0}"));
+ var flock = new CCodeDeclaration (get_ccode_name (mutex_type));
+ var flock_decl = new CCodeVariableDeclarator (get_symbol_lock_name (get_ccode_name (f)), new CCodeConstant ("{0}"));
flock.add_declarator (flock_decl);
if (f.is_private_symbol ()) {
decl_space.add_type_member_declaration (flock);
}
- if (f.variable_type is ArrayType && !f.no_array_length) {
+ if (f.variable_type is ArrayType && get_ccode_array_length (f)) {
var array_type = (ArrayType) f.variable_type;
if (!array_type.fixed_length) {
for (int dim = 1; dim <= array_type.rank; dim++) {
var len_type = int_type.copy ();
- cdecl = new CCodeDeclaration (len_type.get_cname ());
- cdecl.add_declarator (new CCodeVariableDeclarator (get_array_length_cname (f.get_cname (), dim)));
+ cdecl = new CCodeDeclaration (get_ccode_name (len_type));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_array_length_cname (get_ccode_name (f), dim)));
if (f.is_private_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
// create field to store delegate target
cdecl = new CCodeDeclaration ("gpointer");
- cdecl.add_declarator (new CCodeVariableDeclarator (get_delegate_target_cname (f.get_cname ())));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_delegate_target_cname (get_ccode_name (f))));
if (f.is_private_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
if (delegate_type.value_owned) {
cdecl = new CCodeDeclaration ("GDestroyNotify");
- cdecl.add_declarator (new CCodeVariableDeclarator (get_delegate_target_destroy_notify_cname (f.get_cname ())));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_delegate_target_destroy_notify_cname (get_ccode_name (f))));
if (f.is_private_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
CCodeExpression lhs = null;
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
if (f.binding == MemberBinding.INSTANCE) {
if (is_gtypeinstance && f.access == SymbolAccessibility.PRIVATE) {
- lhs = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), f.get_cname ());
+ lhs = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), get_ccode_name (f));
} else {
- lhs = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), f.get_cname ());
+ lhs = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), get_ccode_name (f));
}
if (f.initializer != null) {
ccode.add_assignment (lhs, rhs);
- if (f.variable_type is ArrayType && !f.no_array_length &&
+ if (f.variable_type is ArrayType && get_ccode_array_length (f) &&
f.initializer is ArrayCreationExpression) {
var array_type = (ArrayType) f.variable_type;
var field_value = get_field_cvalue (f, load_this_parameter ((TypeSymbol) f.parent_symbol));
}
if (f.access == SymbolAccessibility.PRIVATE) {
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (cl.get_upper_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (get_ccode_upper_case_name (cl))));
ccall.add_argument (new CCodeIdentifier ("klass"));
- lhs = new CCodeMemberAccess (ccall, f.get_cname (), true);
+ lhs = new CCodeMemberAccess (ccall, get_ccode_name (f), true);
} else {
- lhs = new CCodeMemberAccess (new CCodeIdentifier ("klass"), f.get_cname (), true);
+ lhs = new CCodeMemberAccess (new CCodeIdentifier ("klass"), get_ccode_name (f), true);
}
if (f.initializer != null) {
generate_field_declaration (f, internal_header_file);
}
- lhs = new CCodeIdentifier (f.get_cname ());
+ lhs = new CCodeIdentifier (get_ccode_name (f));
- var var_decl = new CCodeVariableDeclarator (f.get_cname (), null, f.variable_type.get_cdeclarator_suffix ());
+ var var_decl = new CCodeVariableDeclarator (get_ccode_name (f), null, f.variable_type.get_cdeclarator_suffix ());
var_decl.initializer = default_value_for_type (f.variable_type, true);
if (class_init_context != null) {
cfile.add_type_member_declaration (var_def);
/* add array length fields where necessary */
- if (f.variable_type is ArrayType && !f.no_array_length) {
+ if (f.variable_type is ArrayType && get_ccode_array_length (f)) {
var array_type = (ArrayType) f.variable_type;
if (!array_type.fixed_length) {
for (int dim = 1; dim <= array_type.rank; dim++) {
var len_type = int_type.copy ();
- var len_def = new CCodeDeclaration (len_type.get_cname ());
- len_def.add_declarator (new CCodeVariableDeclarator (get_array_length_cname (f.get_cname (), dim), new CCodeConstant ("0")));
+ var len_def = new CCodeDeclaration (get_ccode_name (len_type));
+ len_def.add_declarator (new CCodeVariableDeclarator (get_array_length_cname (get_ccode_name (f), dim), new CCodeConstant ("0")));
if (!f.is_private_symbol ()) {
len_def.modifiers = CCodeModifiers.EXTERN;
} else {
if (array_type.rank == 1 && f.is_internal_symbol ()) {
var len_type = int_type.copy ();
- var cdecl = new CCodeDeclaration (len_type.get_cname ());
- cdecl.add_declarator (new CCodeVariableDeclarator (get_array_size_cname (f.get_cname ()), new CCodeConstant ("0")));
+ var cdecl = new CCodeDeclaration (get_ccode_name (len_type));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_array_size_cname (get_ccode_name (f)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
}
// create field to store delegate target
var target_def = new CCodeDeclaration ("gpointer");
- target_def.add_declarator (new CCodeVariableDeclarator (get_delegate_target_cname (f.get_cname ()), new CCodeConstant ("NULL")));
+ target_def.add_declarator (new CCodeVariableDeclarator (get_delegate_target_cname (get_ccode_name (f)), new CCodeConstant ("NULL")));
if (!f.is_private_symbol ()) {
target_def.modifiers = CCodeModifiers.EXTERN;
} else {
if (delegate_type.value_owned) {
var target_destroy_notify_def = new CCodeDeclaration ("GDestroyNotify");
- target_destroy_notify_def.add_declarator (new CCodeVariableDeclarator (get_delegate_target_destroy_notify_cname (f.get_cname ()), new CCodeConstant ("NULL")));
+ target_destroy_notify_def.add_declarator (new CCodeVariableDeclarator (get_delegate_target_destroy_notify_cname (get_ccode_name (f)), new CCodeConstant ("NULL")));
if (!f.is_private_symbol ()) {
target_destroy_notify_def.modifiers = CCodeModifiers.EXTERN;
} else {
var temp_decl = get_temp_variable (f.variable_type);
var vardecl = new CCodeVariableDeclarator.zero (temp_decl.name, rhs);
- ccode.add_declaration (temp_decl.variable_type.get_cname (), vardecl);
+ ccode.add_declaration (get_ccode_name (temp_decl.variable_type), vardecl);
var tmp = get_variable_cexpression (get_variable_cname (temp_decl.name));
ccode.add_assignment (lhs, tmp);
ccode.add_assignment (lhs, rhs);
}
- if (f.variable_type is ArrayType && !f.no_array_length &&
+ if (f.variable_type is ArrayType && get_ccode_array_length (f) &&
f.initializer is ArrayCreationExpression) {
var array_type = (ArrayType) f.variable_type;
var field_value = get_field_cvalue (f, null);
}
public void generate_property_accessor_declaration (PropertyAccessor acc, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, acc, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc, get_ccode_name (acc))) {
return;
}
CCodeParameter cvalueparam;
if (returns_real_struct) {
- cvalueparam = new CCodeParameter ("result", acc.value_type.get_cname () + "*");
+ cvalueparam = new CCodeParameter ("result", get_ccode_name (acc.value_type) + "*");
} else if (!acc.readable && prop.property_type.is_real_non_null_struct_type ()) {
- cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname () + "*");
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type) + "*");
} else {
- cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname ());
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type));
}
generate_type_declaration (acc.value_type, decl_space);
CCodeFunction function;
if (acc.readable && !returns_real_struct) {
- function = new CCodeFunction (acc.get_cname (), acc.value_type.get_cname ());
+ function = new CCodeFunction (get_ccode_name (acc), get_ccode_name (acc.value_type));
} else {
- function = new CCodeFunction (acc.get_cname (), "void");
+ function = new CCodeFunction (get_ccode_name (acc), "void");
}
if (prop.binding == MemberBinding.INSTANCE) {
var t = (TypeSymbol) prop.parent_symbol;
var this_type = get_data_type_for_symbol (t);
generate_type_declaration (this_type, decl_space);
- var cselfparam = new CCodeParameter ("self", this_type.get_cname ());
+ var cselfparam = new CCodeParameter ("self", get_ccode_name (this_type));
if (t is Struct) {
cselfparam.type_name += "*";
}
}
var this_type = get_data_type_for_symbol (t);
- var cselfparam = new CCodeParameter ("self", this_type.get_cname ());
+ var cselfparam = new CCodeParameter ("self", get_ccode_name (this_type));
if (t is Struct) {
cselfparam.type_name += "*";
}
CCodeParameter cvalueparam;
if (returns_real_struct) {
- cvalueparam = new CCodeParameter ("result", acc.value_type.get_cname () + "*");
+ cvalueparam = new CCodeParameter ("result", get_ccode_name (acc.value_type) + "*");
} else if (!acc.readable && prop.property_type.is_real_non_null_struct_type ()) {
- cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname () + "*");
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type) + "*");
} else {
- cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname ());
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type));
}
if (prop.is_abstract || prop.is_virtual) {
CCodeFunction function;
if (acc.readable && !returns_real_struct) {
- function = new CCodeFunction (acc.get_cname (), current_return_type.get_cname ());
+ function = new CCodeFunction (get_ccode_name (acc), get_ccode_name (current_return_type));
} else {
- function = new CCodeFunction (acc.get_cname (), "void");
+ function = new CCodeFunction (get_ccode_name (acc), "void");
}
function.add_parameter (cselfparam);
if (acc.writable || acc.construction || returns_real_struct) {
if (prop.parent_symbol is Interface) {
var iface = (Interface) prop.parent_symbol;
- vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_INTERFACE".printf (iface.get_upper_case_cname (null))));
+ vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_INTERFACE".printf (get_ccode_upper_case_name (iface, null))));
} else {
var cl = (Class) prop.parent_symbol;
- vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (cl.get_upper_case_cname (null))));
+ vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (cl, null))));
}
vcast.add_argument (new CCodeIdentifier ("self"));
string cname;
if (is_virtual) {
if (acc.readable) {
- cname = "%s_real_get_%s".printf (t.get_lower_case_cname (null), prop.name);
+ cname = "%s_real_get_%s".printf (get_ccode_lower_case_name (t, null), prop.name);
} else {
- cname = "%s_real_set_%s".printf (t.get_lower_case_cname (null), prop.name);
+ cname = "%s_real_set_%s".printf (get_ccode_lower_case_name (t, null), prop.name);
}
} else {
- cname = acc.get_cname ();
+ cname = get_ccode_name (acc);
}
CCodeFunction function;
if (acc.writable || acc.construction || returns_real_struct) {
function = new CCodeFunction (cname, "void");
} else {
- function = new CCodeFunction (cname, acc.value_type.get_cname ());
+ function = new CCodeFunction (cname, get_ccode_name (acc.value_type));
}
ObjectType base_type = null;
base_type = new ObjectType ((ObjectTypeSymbol) prop.base_interface_property.parent_symbol);
}
function.modifiers |= CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("base", base_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("base", get_ccode_name (base_type)));
} else {
function.add_parameter (cselfparam);
}
if (acc.readable && !returns_real_struct) {
// do not declare result variable if exit block is known to be unreachable
if (acc.return_block == null || acc.return_block.get_predecessors ().size > 0) {
- ccode.add_declaration (acc.value_type.get_cname (), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_ccode_name (acc.value_type), new CCodeVariableDeclarator ("result"));
}
}
if (is_virtual) {
- ccode.add_declaration (this_type.get_cname (), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration (get_ccode_name (this_type), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), get_cvalue_ (transform_value (new GLibValue (base_type, new CCodeIdentifier ("base"), true), this_type, acc)));
}
// notify on property changes
if (is_gobject_property (prop) &&
- prop.notify &&
+ get_ccode_notify (prop) &&
(acc.writable || acc.construction)) {
var notify_call = new CCodeFunctionCall (new CCodeIdentifier ("g_object_notify"));
notify_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("self"), "GObject *"));
- notify_call.add_argument (prop.get_canonical_cconstant ());
+ notify_call.add_argument (get_property_canonical_cconstant (prop));
ccode.add_expression (notify_call);
}
var param_type = param.variable_type.copy ();
param_type.value_owned = true;
- data.add_field (param_type.get_cname (), get_variable_cname (param.name));
+ data.add_field (get_ccode_name (param_type), get_variable_cname (param.name));
bool is_unowned_delegate = param.variable_type is DelegateType && !param.variable_type.value_owned;
var array_type = param.variable_type as ArrayType;
var deleg_type = param.variable_type as DelegateType;
- if (array_type != null && !param.no_array_length) {
+ if (array_type != null && get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
data.add_field ("gint", get_parameter_array_length_cname (param, dim));
}
} else {
if (in_constructor || (current_method != null && current_method.binding == MemberBinding.INSTANCE) ||
(current_property_accessor != null && current_property_accessor.prop.binding == MemberBinding.INSTANCE)) {
- data.add_field ("%s *".printf (current_type_symbol.get_cname ()), "self");
+ data.add_field ("%s *".printf (get_ccode_name (current_type_symbol)), "self");
}
if (current_method != null) {
if (local.captured) {
generate_type_declaration (local.variable_type, cfile);
- data.add_field (local.variable_type.get_cname (), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
+ data.add_field (get_ccode_name (local.variable_type), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
if (local.variable_type is ArrayType) {
var array_type = (ArrayType) local.variable_type;
bool has_simple_struct_initializer (LocalVariable local) {
var st = local.variable_type.data_type as Struct;
var initializer = local.initializer as ObjectCreationExpression;
- if (st != null && (!st.is_simple_type () || st.get_cname () == "va_list") && !local.variable_type.nullable &&
+ if (st != null && (!st.is_simple_type () || get_ccode_name (st) == "va_list") && !local.variable_type.nullable &&
local.variable_type.data_type != gvalue_type && initializer != null && initializer.get_object_initializer ().size == 0) {
return true;
} else {
if (!local.captured) {
if (current_method != null && current_method.coroutine) {
- closure_struct.add_field (local.variable_type.get_cname (), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
+ closure_struct.add_field (get_ccode_name (local.variable_type), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
} else {
var cvar = new CCodeVariableDeclarator (get_variable_cname (local.name), null, local.variable_type.get_cdeclarator_suffix ());
cvar.init0 = true;
}
- ccode.add_declaration (local.variable_type.get_cname (), cvar);
+ ccode.add_declaration (get_ccode_name (local.variable_type), cvar);
}
if (local.variable_type is ArrayType) {
var cexpr = get_cvalue (expr);
- string ctype = field.get_ctype ();
+ string ctype = get_ccode_type (field);
if (ctype != null) {
cexpr = new CCodeCastExpression (cexpr, ctype);
}
clist.append (cexpr);
var array_type = field.variable_type as ArrayType;
- if (array_type != null && !field.no_array_length && !field.array_null_terminated) {
+ if (array_type != null && get_ccode_array_length (field) && !get_ccode_array_null_terminated (field)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
clist.append (get_array_length_cvalue (expr.target_value, dim));
}
return get_variable_cexpression (var_name);
}
} else {
- string type_id = type.get_type_id ();
- if (type_id == null) {
+ string type_id = get_ccode_type_id (type);
+ if (type_id == "") {
type_id = "G_TYPE_INVALID";
} else {
generate_type_declaration (type, cfile);
} else if (type.data_type != null) {
string dup_function;
var cl = type.data_type as Class;
- if (type.data_type.is_reference_counting ()) {
- dup_function = type.data_type.get_ref_function ();
+ if (is_reference_counting (type.data_type)) {
+ dup_function = get_ccode_ref_function ((ObjectTypeSymbol) type.data_type);
if (type.data_type is Interface && dup_function == null) {
Report.error (source_reference, "missing class prerequisite for interface `%s', add GLib.Object to interface declaration if unsure".printf (type.data_type.get_full_name ()));
return null;
}
} else if (cl != null && cl.is_immutable) {
// allow duplicates of immutable instances as for example strings
- dup_function = type.data_type.get_dup_function ();
+ dup_function = get_ccode_dup_function (type.data_type);
if (dup_function == null) {
dup_function = "";
}
- } else if (cl != null && cl.is_gboxed) {
+ } else if (cl != null && get_ccode_is_gboxed (cl)) {
// allow duplicates of gboxed instances
dup_function = generate_dup_func_wrapper (type);
if (dup_function == null) {
dup_function = "";
}
} else if (type is ValueType) {
- dup_function = type.data_type.get_dup_function ();
+ dup_function = get_ccode_dup_function (type.data_type);
if (dup_function == null && type.nullable) {
dup_function = generate_struct_dup_wrapper ((ValueType) type);
} else if (dup_function == null) {
}
private string generate_struct_equal_function (Struct st) {
- string equal_func = "_%sequal".printf (st.get_lower_case_cprefix ());
+ string equal_func = "_%sequal".printf (get_ccode_lower_case_prefix (st));
if (!add_wrapper (equal_func)) {
// wrapper already defined
var function = new CCodeFunction (equal_func, "gboolean");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("s1", "const " + st.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("s2", "const " + st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("s1", "const " + get_ccode_name (st) + "*"));
+ function.add_parameter (new CCodeParameter ("s2", "const " + get_ccode_name (st) + "*"));
push_function (function);
}
private string generate_numeric_equal_function (TypeSymbol sym) {
- string equal_func = "_%sequal".printf (sym.get_lower_case_cprefix ());
+ string equal_func = "_%sequal".printf (get_ccode_lower_case_prefix (sym));
if (!add_wrapper (equal_func)) {
// wrapper already defined
var function = new CCodeFunction (equal_func, "gboolean");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("s1", "const " + sym.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("s2", "const " + sym.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("s1", "const " + get_ccode_name (sym) + "*"));
+ function.add_parameter (new CCodeParameter ("s2", "const " + get_ccode_name (sym) + "*"));
push_function (function);
}
private string generate_struct_dup_wrapper (ValueType value_type) {
- string dup_func = "_%sdup".printf (value_type.type_symbol.get_lower_case_cprefix ());
+ string dup_func = "_%sdup".printf (get_ccode_lower_case_prefix (value_type.type_symbol));
if (!add_wrapper (dup_func)) {
// wrapper already defined
return dup_func;
}
- var function = new CCodeFunction (dup_func, value_type.get_cname ());
+ var function = new CCodeFunction (dup_func, get_ccode_name (value_type));
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", value_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (value_type)));
push_function (function);
ccode.add_return (dup_call);
} else {
- ccode.add_declaration (value_type.get_cname (), new CCodeVariableDeclarator ("dup"));
+ ccode.add_declaration (get_ccode_name (value_type), new CCodeVariableDeclarator ("dup"));
var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
- creation_call.add_argument (new CCodeConstant (value_type.data_type.get_cname ()));
+ creation_call.add_argument (new CCodeConstant (get_ccode_name (value_type.data_type)));
creation_call.add_argument (new CCodeConstant ("1"));
ccode.add_assignment (new CCodeIdentifier ("dup"), creation_call);
var st = value_type.data_type as Struct;
if (st != null && st.is_disposable ()) {
- if (!st.has_copy_function) {
+ if (!get_ccode_has_copy_function (st)) {
generate_struct_copy_function (st);
}
- var copy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_copy_function ()));
+ var copy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_copy_function (st)));
copy_call.add_argument (new CCodeIdentifier ("self"));
copy_call.add_argument (new CCodeIdentifier ("dup"));
ccode.add_expression (copy_call);
cfile.add_include ("string.h");
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeConstant (value_type.data_type.get_cname ()));
+ sizeof_call.add_argument (new CCodeConstant (get_ccode_name (value_type.data_type)));
var copy_call = new CCodeFunctionCall (new CCodeIdentifier ("memcpy"));
copy_call.add_argument (new CCodeIdentifier ("dup"));
}
protected string generate_dup_func_wrapper (DataType type) {
- string destroy_func = "_vala_%s_copy".printf (type.data_type.get_cname ());
+ string destroy_func = "_vala_%s_copy".printf (get_ccode_name (type.data_type));
if (!add_wrapper (destroy_func)) {
// wrapper already defined
return destroy_func;
}
- var function = new CCodeFunction (destroy_func, type.get_cname ());
+ var function = new CCodeFunction (destroy_func, get_ccode_name (type));
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (type)));
push_function (function);
var cl = type.data_type as Class;
- assert (cl != null && cl.is_gboxed);
+ assert (cl != null && get_ccode_is_gboxed (cl));
var free_call = new CCodeFunctionCall (new CCodeIdentifier ("g_boxed_copy"));
- free_call.add_argument (new CCodeIdentifier (cl.get_type_id ()));
+ free_call.add_argument (new CCodeIdentifier (get_ccode_type_id (cl)));
free_call.add_argument (new CCodeIdentifier ("self"));
ccode.add_return (free_call);
}
protected string generate_free_func_wrapper (DataType type) {
- string destroy_func = "_vala_%s_free".printf (type.data_type.get_cname ());
+ string destroy_func = "_vala_%s_free".printf (get_ccode_name (type.data_type));
if (!add_wrapper (destroy_func)) {
// wrapper already defined
var function = new CCodeFunction (destroy_func, "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (type)));
push_function (function);
var cl = type.data_type as Class;
- if (cl != null && cl.is_gboxed) {
+ if (cl != null && get_ccode_is_gboxed (cl)) {
var free_call = new CCodeFunctionCall (new CCodeIdentifier ("g_boxed_free"));
- free_call.add_argument (new CCodeIdentifier (cl.get_type_id ()));
+ free_call.add_argument (new CCodeIdentifier (get_ccode_type_id (cl)));
free_call.add_argument (new CCodeIdentifier ("self"));
- ccode.add_expression (free_call);
- } else if (cl != null) {
- assert (cl.free_function_address_of);
-
- var free_call = new CCodeFunctionCall (new CCodeIdentifier (type.data_type.get_free_function ()));
- free_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("self")));
-
ccode.add_expression (free_call);
} else {
var st = type.data_type as Struct;
if (st != null && st.is_disposable ()) {
- if (!st.has_destroy_function) {
+ if (!get_ccode_has_destroy_function (st)) {
generate_struct_destroy_function (st);
}
- var destroy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_destroy_function ()));
+ var destroy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_destroy_function (st)));
destroy_call.add_argument (new CCodeIdentifier ("self"));
ccode.add_expression (destroy_call);
}
if (elements_require_free && element_destroy_func_expression is CCodeIdentifier) {
return new CCodeIdentifier (generate_collection_free_wrapper (type, (CCodeIdentifier) element_destroy_func_expression));
} else {
- return new CCodeIdentifier (type.data_type.get_free_function ());
+ return new CCodeIdentifier (get_ccode_free_function (type.data_type));
}
} else if (type is ErrorType) {
return new CCodeIdentifier ("g_error_free");
} else if (type.data_type != null) {
string unref_function;
if (type is ReferenceType) {
- if (type.data_type.is_reference_counting ()) {
- unref_function = type.data_type.get_unref_function ();
+ if (is_reference_counting (type.data_type)) {
+ unref_function = get_ccode_unref_function ((ObjectTypeSymbol) type.data_type);
if (type.data_type is Interface && unref_function == null) {
Report.error (type.source_reference, "missing class prerequisite for interface `%s', add GLib.Object to interface declaration if unsure".printf (type.data_type.get_full_name ()));
return null;
}
} else {
var cl = type.data_type as Class;
- if (cl != null && (cl.free_function_address_of || cl.is_gboxed)) {
+ if (cl != null && get_ccode_is_gboxed (cl)) {
unref_function = generate_free_func_wrapper (type);
} else {
- unref_function = type.data_type.get_free_function ();
+ unref_function = get_ccode_free_function (type.data_type);
}
}
} else {
if (type.nullable) {
- unref_function = type.data_type.get_free_function ();
+ unref_function = get_ccode_free_function (type.data_type);
if (unref_function == null) {
if (type.data_type is Struct && ((Struct) type.data_type).is_disposable ()) {
unref_function = generate_free_func_wrapper (type);
}
} else {
var st = (Struct) type.data_type;
- if (!st.has_destroy_function) {
+ if (!get_ccode_has_destroy_function (st)) {
generate_struct_destroy_function (st);
}
- unref_function = st.get_destroy_function ();
+ unref_function = get_ccode_destroy_function (st);
}
}
if (unref_function == null) {
}
private string generate_collection_free_wrapper (DataType collection_type, CCodeIdentifier element_destroy_func_expression) {
- string destroy_func = "_%s_%s".printf (collection_type.data_type.get_free_function (), element_destroy_func_expression.name);
+ string destroy_func = "_%s_%s".printf (get_ccode_free_function (collection_type.data_type), element_destroy_func_expression.name);
if (!add_wrapper (destroy_func)) {
// wrapper already defined
var function = new CCodeFunction (destroy_func, "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", collection_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (collection_type)));
push_function (function);
string destroy_node_func = "%s_node".printf (destroy_func);
var wrapper = new CCodeFunction (destroy_node_func, "gboolean");
wrapper.modifiers = CCodeModifiers.STATIC;
- wrapper.add_parameter (new CCodeParameter ("node", collection_type.get_cname ()));
+ wrapper.add_parameter (new CCodeParameter ("node", get_ccode_name (collection_type)));
wrapper.add_parameter (new CCodeParameter ("unused", "gpointer"));
push_function (wrapper);
ccode.add_expression (element_free_call);
- var cfreecall = new CCodeFunctionCall (new CCodeIdentifier (collection_type.data_type.get_free_function ()));
+ var cfreecall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_free_function (collection_type.data_type)));
cfreecall.add_argument (new CCodeIdentifier ("self"));
ccode.add_expression (cfreecall);
var ccomma = new CCodeCommaExpression ();
if (context.profile == Profile.GOBJECT) {
- if (type.data_type != null && !type.data_type.is_reference_counting () &&
+ if (type.data_type != null && !is_reference_counting (type.data_type) &&
(type.data_type == gstringbuilder_type
|| type.data_type == garray_type
|| type.data_type == gbytearray_type
var cassign = new CCodeAssignment (cvar, ccomma);
// g_free (NULL) is allowed
- bool uses_gfree = (type.data_type != null && !type.data_type.is_reference_counting () && type.data_type.get_free_function () == "g_free");
+ bool uses_gfree = (type.data_type != null && !is_reference_counting (type.data_type) && get_ccode_free_function (type.data_type) == "g_free");
uses_gfree = uses_gfree || type is ArrayType;
if (uses_gfree) {
return cassign;
public void emit_temp_var (LocalVariable local) {
var init = !(local.name.has_prefix ("*") || local.no_init);
if (is_in_coroutine ()) {
- closure_struct.add_field (local.variable_type.get_cname (), local.name);
+ closure_struct.add_field (get_ccode_name (local.variable_type), local.name);
// even though closure struct is zerod, we need to initialize temporary variables
// as they might be used multiple times when declared in a loop
var memset_call = new CCodeFunctionCall (new CCodeIdentifier ("memset"));
memset_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (local.name)));
memset_call.add_argument (new CCodeConstant ("0"));
- memset_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (local.variable_type.get_cname ())));
+ memset_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (local.variable_type))));
ccode.add_expression (memset_call);
} else {
ccode.add_assignment (get_variable_cexpression (local.name), initializer);
cvar.initializer = default_value_for_type (local.variable_type, true);
cvar.init0 = true;
}
- ccode.add_declaration (local.variable_type.get_cname (), cvar);
+ ccode.add_declaration (get_ccode_name (local.variable_type), cvar);
}
}
ccode.close ();
var array_type = param.variable_type as ArrayType;
- if (array_type != null && !array_type.fixed_length && !param.no_array_length) {
+ if (array_type != null && !array_type.fixed_length && get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
ccode.open_if (get_variable_cexpression (get_parameter_array_length_cname (param, dim)));
ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_variable_cexpression (get_parameter_array_length_cname (param, dim))), get_array_length_cvalue (value, dim));
}
// return array length if appropriate
- if (((current_method != null && !current_method.no_array_length) || current_property_accessor != null) && current_return_type is ArrayType) {
+ if (((current_method != null && get_ccode_array_length (current_method)) || current_property_accessor != null) && current_return_type is ArrayType) {
var temp_value = store_temp_value (stmt.return_expression.target_value, stmt);
var array_type = (ArrayType) current_return_type;
klass = new CCodeIdentifier ("klass");
}
- var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf(parent.get_upper_case_cname ())));
+ var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf(get_ccode_upper_case_name (parent))));
get_class_private_call.add_argument (klass);
l = new CCodeMemberAccess.pointer (get_class_private_call, get_symbol_lock_name (resource.symbol_reference.name));
} else {
- string lock_name = "%s_%s".printf(parent.get_lower_case_cname (), resource.symbol_reference.name);
+ string lock_name = "%s_%s".printf(get_ccode_lower_case_name (parent), resource.symbol_reference.name);
l = new CCodeIdentifier (get_symbol_lock_name (lock_name));
}
return l;
public override void visit_lock_statement (LockStatement stmt) {
var l = get_lock_expression (stmt, stmt.resource);
- var fc = new CCodeFunctionCall (new CCodeIdentifier (((Method) mutex_type.scope.lookup ("lock")).get_cname ()));
+ var fc = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (mutex_type.scope.lookup ("lock"))));
fc.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, l));
ccode.add_expression (fc);
public override void visit_unlock_statement (UnlockStatement stmt) {
var l = get_lock_expression (stmt, stmt.resource);
- var fc = new CCodeFunctionCall (new CCodeIdentifier (((Method) mutex_type.scope.lookup ("unlock")).get_cname ()));
+ var fc = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (mutex_type.scope.lookup ("unlock"))));
fc.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, l));
ccode.add_expression (fc);
if (expr.formal_value_type is GenericType && !(expr.value_type is GenericType)) {
var st = expr.formal_value_type.type_parameter.parent_symbol.parent_symbol as Struct;
if (expr.formal_value_type.type_parameter.parent_symbol != garray_type &&
- (st == null || st.get_cname () != "va_list")) {
+ (st == null || get_ccode_name (st) != "va_list")) {
// GArray and va_list don't use pointer-based generics
set_cvalue (expr, convert_from_generic_pointer (get_cvalue (expr), expr.value_type));
}
// translated string constant
var m = (Method) root_symbol.scope.lookup ("GLib").scope.lookup ("_");
- add_symbol_declaration (cfile, m, m.get_cname ());
+ add_symbol_declaration (cfile, m, get_ccode_name (m));
var translate = new CCodeFunctionCall (new CCodeIdentifier ("_"));
translate.add_argument (get_cvalue (expr));
}
var cl = type.data_type as Class;
- if (cl != null && cl.is_reference_counting ()
- && cl.get_ref_function () == "") {
+ if (cl != null && is_reference_counting (cl)
+ && get_ccode_ref_function (cl) == "") {
// empty ref_function => no ref necessary
return false;
}
}
var cl = type.data_type as Class;
- if (cl != null && cl.is_reference_counting ()
- && cl.get_unref_function () == "") {
+ if (cl != null && is_reference_counting (cl)
+ && get_ccode_unref_function (cl) == "") {
// empty unref_function => no unref necessary
return false;
}
bool is_ref_function_void (DataType type) {
var cl = type.data_type as Class;
- if (cl != null && cl.ref_function_void) {
- return true;
+ if (cl != null) {
+ return get_ccode_ref_function_void (cl);
} else {
return false;
}
var vt = (ValueType) type;
var st = (Struct) vt.type_symbol;
- var copy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_copy_function ()));
+ var copy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_copy_function (st)));
copy_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, cexpr));
copy_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, ctemp));
- if (!st.has_copy_function) {
+ if (!get_ccode_has_copy_function (st)) {
generate_struct_copy_function (st);
}
}
public virtual void generate_class_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, get_ccode_name (cl))) {
return;
}
}
check_type (expr.type_reference);
var st = expr.type_reference.data_type as Struct;
- if ((st != null && (!st.is_simple_type () || st.get_cname () == "va_list")) || expr.get_object_initializer ().size > 0) {
+ if ((st != null && (!st.is_simple_type () || get_ccode_name (st) == "va_list")) || expr.get_object_initializer ().size > 0) {
// value-type initialization or object creation expression with object initializer
var local = expr.parent_node as LocalVariable;
var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("memset"));
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
creation_call.add_argument (new CCodeConstant ("0"));
- creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (expr.type_reference.get_cname ())));
+ creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (expr.type_reference))));
creation_expr = creation_call;
}
var cl = expr.type_reference.data_type as Class;
- if (!m.has_new_function) {
+ if (!get_ccode_has_new_function (m)) {
// use construct function directly
- creation_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
- creation_call.add_argument (new CCodeIdentifier (cl.get_type_id ()));
+ creation_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
+ creation_call.add_argument (new CCodeIdentifier (get_ccode_type_id (cl)));
} else {
- creation_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
+ creation_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (m)));
}
- if ((st != null && !st.is_simple_type ()) && !(m.cinstance_parameter_position < 0)) {
+ if ((st != null && !st.is_simple_type ()) && !(get_ccode_instance_pos (m) < 0)) {
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
- } else if (st != null && st.get_cname () == "va_list") {
+ } else if (st != null && get_ccode_name (st) == "va_list") {
creation_call.add_argument (instance);
- if (m.get_cname () == "va_start") {
+ if (get_ccode_name (m) == "va_start") {
Parameter last_param = null;
foreach (var param in current_method.get_parameters ()) {
if (param.ellipsis) {
if (cl != null && !cl.is_compact) {
add_generic_type_arguments (carg_map, expr.type_reference.get_type_arguments (), expr);
- } else if (cl != null && m.simple_generics) {
+ } else if (cl != null && get_ccode_simple_generics (m)) {
int type_param_index = 0;
foreach (var type_arg in expr.type_reference.get_type_arguments ()) {
if (requires_copy (type_arg)) {
// g_array_new: element size
if (cl == garray_type && param.name == "element_size") {
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (expr.type_reference.get_type_arguments ().get (0).get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (expr.type_reference.get_type_arguments ().get (0))));
cexpr = csizeof;
}
- if (!param.no_array_length && param.variable_type is ArrayType) {
+ if (get_ccode_array_length (param) && param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
- carg_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), get_array_length_cexpression (arg, dim));
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), get_array_length_cexpression (arg, dim));
}
} else if (param.variable_type is DelegateType) {
var deleg_type = (DelegateType) param.variable_type;
if (d.has_target) {
CCodeExpression delegate_target_destroy_notify;
var delegate_target = get_delegate_target_cexpression (arg, out delegate_target_destroy_notify);
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), delegate_target);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), delegate_target);
if (deleg_type.value_owned) {
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position + 0.01), delegate_target_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), delegate_target_destroy_notify);
}
}
}
cexpr = handle_struct_argument (param, arg, cexpr);
- if (param.ctype != null) {
- cexpr = new CCodeCastExpression (cexpr, param.ctype);
+ if (get_ccode_type (param) != null) {
+ cexpr = new CCodeCastExpression (cexpr, get_ccode_type (param));
}
} else {
cexpr = handle_struct_argument (null, arg, cexpr);
}
- arg_pos = get_param_pos (param.cparameter_position, ellipsis);
+ arg_pos = get_param_pos (get_ccode_pos (param), ellipsis);
} else {
// default argument position
cexpr = handle_struct_argument (null, arg, cexpr);
* parameter yet */
param.initializer.emit (this);
- carg_map.set (get_param_pos (param.cparameter_position), get_cvalue (param.initializer));
+ carg_map.set (get_param_pos (get_ccode_pos (param)), get_cvalue (param.initializer));
i++;
}
last_pos = min_pos;
}
- if ((st != null && !st.is_simple_type ()) && m.cinstance_parameter_position < 0) {
+ if ((st != null && !st.is_simple_type ()) && get_ccode_instance_pos (m) < 0) {
// instance parameter is at the end in a struct creation method
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
}
if (ellipsis) {
/* ensure variable argument list ends with NULL
* except when using printf-style arguments */
- if (!m.printf_format && !m.scanf_format && m.sentinel != "") {
- creation_call.add_argument (new CCodeConstant (m.sentinel));
+ if (!m.printf_format && !m.scanf_format && get_ccode_sentinel (m) != "") {
+ creation_call.add_argument (new CCodeConstant (get_ccode_sentinel (m)));
}
}
// cast the return value of the creation method back to the intended type if
// it requested a special C return type
- if (get_custom_creturn_type (m) != null) {
- creation_expr = new CCodeCastExpression (creation_expr, expr.type_reference.get_cname ());
+ if (get_ccode_type (m) != null) {
+ creation_expr = new CCodeCastExpression (creation_expr, get_ccode_name (expr.type_reference));
}
} else if (expr.symbol_reference is ErrorCode) {
var ecode = (ErrorCode) expr.symbol_reference;
} else {
creation_call = new CCodeFunctionCall (new CCodeIdentifier ("g_error_new"));
}
- creation_call.add_argument (new CCodeIdentifier (edomain.get_upper_case_cname ()));
- creation_call.add_argument (new CCodeIdentifier (ecode.get_cname ()));
+ creation_call.add_argument (new CCodeIdentifier (get_ccode_upper_case_name (edomain)));
+ creation_call.add_argument (new CCodeIdentifier (get_ccode_name (ecode)));
foreach (Expression arg in expr.get_argument_list ()) {
creation_call.add_argument (get_cvalue (arg));
generate_type_declaration (expr.type_reference, cfile);
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (expr.type_reference.get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (expr.type_reference)));
set_cvalue (expr, csizeof);
}
}
public CCodeExpression? try_cast_value_to_type (CCodeExpression ccodeexpr, DataType from, DataType to, Expression? expr = null) {
- if (from == null || gvalue_type == null || from.data_type != gvalue_type || to.get_type_id () == null) {
+ if (from == null || gvalue_type == null || from.data_type != gvalue_type || get_ccode_type_id (to) == "") {
return null;
}
var temp_value = create_temp_value (to, true, node, true);
var ctemp = get_cvalue_ (temp_value);
- rv = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeCastExpression (rv, (new PointerType(to)).get_cname ()));
+ rv = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeCastExpression (rv, get_ccode_name (new PointerType (to))));
var holds = new CCodeFunctionCall (new CCodeIdentifier ("G_VALUE_HOLDS"));
holds.add_argument (gvalue);
- holds.add_argument (new CCodeIdentifier (to.get_type_id ()));
+ holds.add_argument (new CCodeIdentifier (get_ccode_type_id (to)));
var cond = new CCodeBinaryExpression (CCodeBinaryOperator.AND, holds, ccall);
var warn = new CCodeFunctionCall (new CCodeIdentifier ("g_warning"));
warn.add_argument (new CCodeConstant ("\"Invalid GValue unboxing (wrong type or NULL)\""));
cfunc.add_parameter (new CCodeParameter ("value", "GVariant*"));
if (!to.is_real_non_null_struct_type ()) {
- cfunc.return_type = to.get_cname ();
+ cfunc.return_type = get_ccode_name (to);
}
if (to.is_real_non_null_struct_type ()) {
// structs are returned via out parameter
- cfunc.add_parameter (new CCodeParameter ("result", to.get_cname () + "*"));
+ cfunc.add_parameter (new CCodeParameter ("result", get_ccode_name (to) + "*"));
} else if (to is ArrayType) {
// return array length if appropriate
var array_type = (ArrayType) to;
if (expr.is_silent_cast) {
var cexpr = get_cvalue (expr.inner);
var ccheck = create_type_check (cexpr, expr.type_reference);
- var ccast = new CCodeCastExpression (cexpr, expr.type_reference.get_cname ());
+ var ccast = new CCodeCastExpression (cexpr, get_ccode_name (expr.type_reference));
var cnull = new CCodeConstant ("NULL");
set_cvalue (expr, new CCodeConditionalExpression (ccheck, ccast, cnull));
// nullable integer or float or boolean or struct cast to non-nullable
innercexpr = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, innercexpr);
}
- set_cvalue (expr, new CCodeCastExpression (innercexpr, expr.type_reference.get_cname ()));
+ set_cvalue (expr, new CCodeCastExpression (innercexpr, get_ccode_name (expr.type_reference)));
if (expr.type_reference is DelegateType) {
if (get_delegate_target (expr.inner) != null) {
var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("memset"));
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_cvalue (expr.inner)));
creation_call.add_argument (new CCodeConstant ("0"));
- creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (expr.inner.value_type.get_cname ())));
+ creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (expr.inner.value_type))));
ccode.add_expression (creation_call);
} else if (expr.value_type is DelegateType) {
var target_destroy_notify = get_delegate_target_destroy_notify_cvalue (expr.inner.target_value);
}
}
- public string? get_type_check_function (TypeSymbol type) {
- var cl = type as Class;
- if (cl != null && cl.type_check_function != null) {
- return cl.type_check_function;
- } else if ((cl != null && cl.is_compact) || type is Struct || type is Enum || type is Delegate) {
- return null;
- } else {
- return type.get_upper_case_cname ("IS_");
- }
- }
-
CCodeExpression? create_type_check (CCodeNode ccodenode, DataType type) {
var et = type as ErrorType;
if (et != null && et.error_code != null) {
var matches_call = new CCodeFunctionCall (new CCodeIdentifier ("g_error_matches"));
matches_call.add_argument ((CCodeExpression) ccodenode);
- matches_call.add_argument (new CCodeIdentifier (et.error_domain.get_upper_case_cname ()));
- matches_call.add_argument (new CCodeIdentifier (et.error_code.get_cname ()));
+ matches_call.add_argument (new CCodeIdentifier (get_ccode_upper_case_name (et.error_domain)));
+ matches_call.add_argument (new CCodeIdentifier (get_ccode_name (et.error_code)));
return matches_call;
} else if (et != null && et.error_domain != null) {
var instance_domain = new CCodeMemberAccess.pointer ((CCodeExpression) ccodenode, "domain");
- var type_domain = new CCodeIdentifier (et.error_domain.get_upper_case_cname ());
+ var type_domain = new CCodeIdentifier (get_ccode_upper_case_name (et.error_domain));
return new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, instance_domain, type_domain);
} else {
- string type_check_func = get_type_check_function (type.data_type);
- if (type_check_func == null) {
+ string type_check_func = get_ccode_type_check_function (type.data_type);
+ if (type_check_func == "") {
return new CCodeInvalidExpression ();
}
var ccheck = new CCodeFunctionCall (new CCodeIdentifier (type_check_func));
}
string generate_array_contains_wrapper (ArrayType array_type) {
- string array_contains_func = "_vala_%s_array_contains".printf (array_type.element_type.get_lower_case_cname ());
+ string array_contains_func = "_vala_%s_array_contains".printf (get_ccode_lower_case_name (array_type.element_type));
if (!add_wrapper (array_contains_func)) {
return array_contains_func;
var function = new CCodeFunction (array_contains_func, "gboolean");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("stack", array_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("stack", get_ccode_name (array_type)));
function.add_parameter (new CCodeParameter ("stack_length", "int"));
if (array_type.element_type is StructValueType) {
- function.add_parameter (new CCodeParameter ("needle", array_type.element_type.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("needle", get_ccode_name (array_type.element_type) + "*"));
} else {
- function.add_parameter (new CCodeParameter ("needle", array_type.element_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("needle", get_ccode_name (array_type.element_type)));
}
push_function (function);
}
public override void visit_lambda_expression (LambdaExpression lambda) {
- // use instance position from delegate
- var dt = (DelegateType) lambda.target_type;
- lambda.method.cinstance_parameter_position = dt.delegate_symbol.cinstance_parameter_position;
-
lambda.accept_children (this);
bool expr_owned = lambda.value_type.value_owned;
- set_cvalue (lambda, new CCodeIdentifier (lambda.method.get_cname ()));
+ set_cvalue (lambda, new CCodeIdentifier (get_ccode_name (lambda.method)));
var delegate_type = (DelegateType) lambda.target_type;
if (lambda.method.closure) {
public CCodeExpression convert_from_generic_pointer (CCodeExpression cexpr, DataType actual_type) {
var result = cexpr;
if (is_reference_type_argument (actual_type) || is_nullable_value_type_argument (actual_type)) {
- result = new CCodeCastExpression (cexpr, actual_type.get_cname ());
+ result = new CCodeCastExpression (cexpr, get_ccode_name (actual_type));
} else if (is_signed_integer_type_argument (actual_type)) {
var cconv = new CCodeFunctionCall (new CCodeIdentifier ("GPOINTER_TO_INT"));
cconv.add_argument (cexpr);
/* floating reference, sink it.
*/
var cl = type.data_type as ObjectTypeSymbol;
- var sink_func = (cl != null) ? cl.get_ref_sink_function () : null;
+ var sink_func = (cl != null) ? get_ccode_ref_sink_function (cl) : "";
- if (sink_func != null) {
+ if (sink_func != "") {
var csink = new CCodeFunctionCall (new CCodeIdentifier (sink_func));
csink.add_argument (result.cvalue);
&& target_type != null
&& target_type.data_type == gvalue_type
&& !(type is NullType)
- && type.get_type_id () != "G_TYPE_VALUE");
+ && get_ccode_type_id (type) != "G_TYPE_VALUE");
bool gvariant_boxing = (context.profile == Profile.GOBJECT
&& target_type != null
&& target_type.data_type == gvariant_type
} else {
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_cvalue_ (temp_value)));
}
- ccall.add_argument (new CCodeIdentifier (type.get_type_id ()));
+ var type_id = get_ccode_type_id (type);
+ if (type_id == "") {
+ Report.error (node.source_reference, "GValue boxing of type `%s' is not supported".printf (type.to_string ()));
+ }
+ ccall.add_argument (new CCodeIdentifier (type_id));
ccode.add_expression (ccall);
if (requires_destroy (type)) {
var cfunc = new CCodeFunction (variant_func, "GVariant*");
cfunc.modifiers = CCodeModifiers.STATIC;
- cfunc.add_parameter (new CCodeParameter ("value", type.get_cname ()));
+ cfunc.add_parameter (new CCodeParameter ("value", get_ccode_name (type)));
if (type is ArrayType) {
// return array length if appropriate
if (context.checking && (iface != null || (cl != null && !cl.is_compact))) {
// checked cast for strict subtypes of GTypeInstance
return generate_instance_cast (cexpr, target_type.data_type);
- } else if (target_type.data_type != null && expression_type.get_cname () != target_type.get_cname ()) {
+ } else if (target_type.data_type != null && get_ccode_name (expression_type) != get_ccode_name (target_type)) {
var st = target_type.data_type as Struct;
if (target_type.data_type.is_reference_type () || (st != null && st.is_simple_type ())) {
// don't cast non-simple structs
- return new CCodeCastExpression (cexpr, target_type.get_cname ());
+ return new CCodeCastExpression (cexpr, get_ccode_name (target_type));
} else {
return cexpr;
}
if (instance is BaseAccess) {
if (prop.base_property != null) {
var base_class = (Class) prop.base_property.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class, null))));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, "set_%s".printf (prop.name)));
ccall.add_argument ((CCodeExpression) get_ccodenode (instance));
ccode.add_expression (ccall);
} else if (prop.base_interface_property != null) {
var base_iface = (Interface) prop.base_interface_property.parent_symbol;
- string parent_iface_var = "%s_%s_parent_iface".printf (current_class.get_lower_case_cname (null), base_iface.get_lower_case_cname (null));
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class), get_ccode_lower_case_name (base_iface));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), "set_%s".printf (prop.name)));
ccall.add_argument ((CCodeExpression) get_ccodenode (instance));
var set_func = "g_object_set";
var base_property = prop;
- if (!prop.no_accessor_method) {
+ if (!get_ccode_no_accessor_method (prop)) {
if (prop.base_property != null) {
base_property = prop.base_property;
} else if (prop.base_interface_property != null) {
set_func = get_dynamic_property_setter_cname ((DynamicProperty) prop);
} else {
generate_property_accessor_declaration (base_property.set_accessor, cfile);
- set_func = base_property.set_accessor.get_cname ();
+ set_func = get_ccode_name (base_property.set_accessor);
if (!prop.external && prop.external_package) {
// internal VAPI properties
ccall.add_argument (cinstance);
}
- if (prop.no_accessor_method) {
+ if (get_ccode_no_accessor_method (prop)) {
/* property name is second argument of g_object_set */
- ccall.add_argument (prop.get_canonical_cconstant ());
+ ccall.add_argument (get_property_canonical_cconstant (prop));
}
var cexpr = get_cvalue_ (value);
ccall.add_argument (cexpr);
- if (array_type != null && !prop.no_array_length) {
+ if (array_type != null && get_ccode_array_length (prop)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
ccall.add_argument (get_array_length_cvalue (value, dim));
}
}
}
- if (prop.no_accessor_method) {
+ if (get_ccode_no_accessor_method (prop)) {
ccall.add_argument (new CCodeConstant ("NULL"));
}
|| type is PointerType || type is DelegateType
|| (array_type != null && !array_type.fixed_length)) {
return new CCodeConstant ("NULL");
- } else if (type.data_type != null && type.data_type.get_default_value () != null) {
- return new CCodeConstant (type.data_type.get_default_value ());
+ } else if (type.data_type != null && get_ccode_default_value (type.data_type) != "") {
+ return new CCodeConstant (get_ccode_default_value (type.data_type));
} else if (type.type_parameter != null) {
return new CCodeConstant ("NULL");
} else if (type is ErrorType) {
if (!context.assert) {
return;
} else if (context.checking && ((t is Class && !((Class) t).is_compact) || t is Interface)) {
- var ctype_check = new CCodeFunctionCall (new CCodeIdentifier (get_type_check_function (t)));
+ var ctype_check = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_check_function (t)));
ctype_check.add_argument (new CCodeIdentifier (var_name));
CCodeExpression cexpr = ctype_check;
return false;
}
if (type.data_type != null) {
- var a = type.data_type.get_attribute ("CCode");
- if (a != null && a.has_argument ("lvalue_access")) {
- return a.get_bool ("lvalue_access");
- }
+ return type.data_type.get_attribute_bool ("CCode", "lvalue_access", true);
}
return true;
}
+ public static CCodeAttribute get_ccode_attribute (CodeNode node) {
+ var attr = node.get_attribute_cache (ccode_attribute_cache_index);
+ if (attr == null) {
+ attr = new CCodeAttribute (node);
+ node.set_attribute_cache (ccode_attribute_cache_index, attr);
+ }
+ return (CCodeAttribute) attr;
+ }
+
+ public static string get_ccode_name (CodeNode node) {
+ return get_ccode_attribute(node).name;
+ }
+
+ public static string get_ccode_const_name (CodeNode node) {
+ return get_ccode_attribute(node).const_name;
+ }
+
+ public static string get_ccode_type_name (Interface iface) {
+ return get_ccode_attribute(iface).type_name;
+ }
+
+ public static string get_ccode_lower_case_name (CodeNode node, string? infix = null) {
+ var sym = node as Symbol;
+ if (sym != null) {
+ if (infix == null) {
+ infix = "";
+ }
+ if (sym is Delegate) {
+ return "%s%s%s".printf (get_ccode_lower_case_prefix (sym.parent_symbol), infix, Symbol.camel_case_to_lower_case (sym.name));
+ } else if (sym is ErrorCode) {
+ return get_ccode_name (sym).down ();
+ } else {
+ return "%s%s%s".printf (get_ccode_lower_case_prefix (sym.parent_symbol), infix, get_ccode_lower_case_suffix (sym));
+ }
+ } else if (node is ErrorType) {
+ var type = (ErrorType) node;
+ if (type.error_domain == null) {
+ if (infix == null) {
+ return "g_error";
+ } else {
+ return "g_%s_error".printf (infix);
+ }
+ } else if (type.error_code == null) {
+ return get_ccode_lower_case_name (type.error_domain, infix);
+ } else {
+ return get_ccode_lower_case_name (type.error_code, infix);
+ }
+ } else {
+ var type = (DataType) node;
+ return get_ccode_lower_case_name (type.data_type, infix);
+ }
+ }
+
+ public static string get_ccode_upper_case_name (Symbol sym, string? infix = null) {
+ if (sym is Property) {
+ return "%s_%s".printf (get_ccode_lower_case_name (sym.parent_symbol), Symbol.camel_case_to_lower_case (sym.name)).up ();
+ } else {
+ return get_ccode_lower_case_name (sym, infix).up ();
+ }
+ }
+
+ public static string get_ccode_header_filenames (Symbol sym) {
+ return get_ccode_attribute(sym).header_filenames;
+ }
+
+ public static string get_ccode_prefix (Symbol sym) {
+ return get_ccode_attribute(sym).prefix;
+ }
+
+ public static string get_ccode_lower_case_prefix (Symbol sym) {
+ return get_ccode_attribute(sym).lower_case_prefix;
+ }
+
+ public static string get_ccode_lower_case_suffix (Symbol sym) {
+ return get_ccode_attribute(sym).lower_case_suffix;
+ }
+
+ public static string get_ccode_ref_function (TypeSymbol sym) {
+ return get_ccode_attribute(sym).ref_function;
+ }
+
+ public static bool is_reference_counting (TypeSymbol sym) {
+ return get_ccode_ref_function (sym) != null;
+ }
+
+ public static bool get_ccode_ref_function_void (Class cl) {
+ return get_ccode_attribute(cl).ref_function_void;
+ }
+
+ public static string get_ccode_unref_function (ObjectTypeSymbol sym) {
+ return get_ccode_attribute(sym).unref_function;
+ }
+
+ public static string get_ccode_ref_sink_function (ObjectTypeSymbol sym) {
+ return get_ccode_attribute(sym).ref_sink_function;
+ }
+
+ public static string get_ccode_copy_function (TypeSymbol sym) {
+ return get_ccode_attribute(sym).copy_function;
+ }
+
+ public static string get_ccode_destroy_function (TypeSymbol sym) {
+ return get_ccode_attribute(sym).destroy_function;
+ }
+
+ public static string? get_ccode_dup_function (TypeSymbol sym) {
+ if (sym is Struct) {
+ if (sym.external_package) {
+ return null;
+ } else {
+ return get_ccode_lower_case_prefix (sym) + "dup";
+ }
+ }
+ return get_ccode_copy_function (sym);
+ }
+
+ public static string get_ccode_free_function (TypeSymbol sym) {
+ return get_ccode_attribute(sym).free_function;
+ }
+
+ public static bool get_ccode_is_gboxed (TypeSymbol sym) {
+ return get_ccode_free_function (sym) == "g_boxed_free";
+ }
+
+ public static string get_ccode_type_id (CodeNode node) {
+ if (node is DataType) {
+ var type = (DataType) node;
+ if (type.data_type != null) {
+ return get_ccode_type_id (type.data_type);
+ }
+ return "";
+ }
+ return get_ccode_attribute(node).type_id;
+ }
+
+ public static string get_ccode_marshaller_type_name (CodeNode node) {
+ return get_ccode_attribute(node).marshaller_type_name;
+ }
+
+ public static string get_ccode_get_value_function (CodeNode sym) {
+ return get_ccode_attribute(sym).get_value_function;
+ }
+
+ public static string get_ccode_set_value_function (CodeNode sym) {
+ return get_ccode_attribute(sym).set_value_function;
+ }
+
+ public static string get_ccode_take_value_function (CodeNode sym) {
+ return get_ccode_attribute(sym).take_value_function;
+ }
+
+ public static string get_ccode_param_spec_function (CodeNode sym) {
+ return get_ccode_attribute(sym).param_spec_function;
+ }
+
+ public static string get_ccode_type_check_function (TypeSymbol sym) {
+ var cl = sym as Class;
+ var a = sym.get_attribute_string ("CCode", "type_check_function");
+ if (cl != null && a != null) {
+ return a;
+ } else if ((cl != null && cl.is_compact) || sym is Struct || sym is Enum || sym is Delegate) {
+ return "";
+ } else {
+ return get_ccode_upper_case_name (sym, "IS_");
+ }
+ }
+
+ public static string get_ccode_default_value (TypeSymbol sym) {
+ return get_ccode_attribute(sym).default_value;
+ }
+
+ public static bool get_ccode_has_copy_function (Struct st) {
+ return st.get_attribute_bool ("CCode", "has_copy_function", true);
+ }
+
+ public static bool get_ccode_has_destroy_function (Struct st) {
+ return st.get_attribute_bool ("CCode", "has_destroy_function", true);
+ }
+
+ public static double get_ccode_instance_pos (CodeNode node) {
+ if (node is Delegate) {
+ return node.get_attribute_double ("CCode", "instance_pos", -2);
+ } else {
+ return node.get_attribute_double ("CCode", "instance_pos", 0);
+ }
+ }
+
+ public static bool get_ccode_array_length (CodeNode node) {
+ return get_ccode_attribute(node).array_length;
+ }
+
+ public static string? get_ccode_array_length_type (CodeNode node) {
+ return get_ccode_attribute(node).array_length_type;
+ }
+
+ public static bool get_ccode_array_null_terminated (CodeNode node) {
+ return get_ccode_attribute(node).array_null_terminated;
+ }
+
+ public static string? get_ccode_array_length_name (CodeNode node) {
+ return get_ccode_attribute(node).array_length_name;
+ }
+
+ public static string? get_ccode_array_length_expr (CodeNode node) {
+ return get_ccode_attribute(node).array_length_expr;
+ }
+
+ public static double get_ccode_array_length_pos (CodeNode node) {
+ var a = node.get_attribute ("CCode");
+ if (a != null && a.has_argument ("array_length_pos")) {
+ return a.get_double ("array_length_pos");
+ }
+ if (node is Parameter) {
+ var param = (Parameter) node;
+ return get_ccode_pos (param) + 0.1;
+ } else {
+ return -3;
+ }
+ }
+
+ public static double get_ccode_delegate_target_pos (CodeNode node) {
+ var a = node.get_attribute ("CCode");
+ if (a != null && a.has_argument ("delegate_target_pos")) {
+ return a.get_double ("delegate_target_pos");
+ }
+ if (node is Parameter) {
+ var param = (Parameter) node;
+ return get_ccode_pos (param) + 0.1;
+ } else {
+ return -3;
+ }
+ }
+
+ public static double get_ccode_destroy_notify_pos (CodeNode node) {
+ var a = node.get_attribute ("CCode");
+ if (a != null && a.has_argument ("destroy_notify_pos")) {
+ return a.get_double ("destroy_notify_pos");
+ }
+ if (node is Parameter) {
+ var param = (Parameter) node;
+ return get_ccode_pos (param) + 0.1;
+ } else {
+ return -3;
+ }
+ }
+
+ public static bool get_ccode_delegate_target (CodeNode node) {
+ return get_ccode_attribute(node).delegate_target;
+ }
+
+ public static double get_ccode_pos (Parameter param) {
+ return get_ccode_attribute(param).pos;
+ }
+
+ public static string? get_ccode_type (CodeNode node) {
+ return node.get_attribute_string ("CCode", "type");
+ }
+
+ public static bool get_ccode_simple_generics (Method m) {
+ return m.get_attribute_bool ("CCode", "simple_generics");
+ }
+
+ public static string get_ccode_real_name (Method m) {
+ return get_ccode_attribute(m).real_name;
+ }
+
+ public static string get_ccode_vfunc_name (Method m) {
+ return get_ccode_attribute(m).vfunc_name;
+ }
+
+ public static string get_ccode_finish_name (Method m) {
+ return get_ccode_attribute(m).finish_name;
+ }
+
+ public static string get_ccode_finish_vfunc_name (Method m) {
+ return get_ccode_attribute(m).finish_vfunc_name;
+ }
+
+ public static string get_ccode_finish_real_name (Method m) {
+ return get_ccode_attribute(m).finish_real_name;
+ }
+
+ public static bool get_ccode_no_accessor_method (Property p) {
+ return p.get_attribute ("NoAccessorMethod") != null;
+ }
+
+ public static bool get_ccode_has_type_id (TypeSymbol sym) {
+ return sym.get_attribute_bool ("CCode", "has_type_id", true);
+ }
+
+ public static bool get_ccode_has_new_function (Method m) {
+ return m.get_attribute_bool ("CCode", "has_new_function", true);
+ }
+
+ public static bool get_ccode_has_generic_type_parameter (Method m) {
+ var a = m.get_attribute ("CCode");
+ return a != null && a.has_argument ("generic_type_pos");
+ }
+
+ public static double get_ccode_generic_type_pos (Method m) {
+ return m.get_attribute_double ("CCode", "generic_type_pos");
+ }
+
+ public static string get_ccode_sentinel (Method m) {
+ return get_ccode_attribute(m).sentinel;
+ }
+
+ public static bool get_ccode_notify (Property prop) {
+ return prop.get_attribute_bool ("CCode", "notify", true);
+ }
+
+ public CCodeConstant get_signal_canonical_constant (Signal sig, string? detail = null) {
+ var str = new StringBuilder ("\"");
+
+ string i = get_ccode_name (sig);
+
+ while (i.length > 0) {
+ unichar c = i.get_char ();
+ if (c == '_') {
+ str.append_c ('-');
+ } else {
+ str.append_unichar (c);
+ }
+
+ i = i.next_char ();
+ }
+
+ if (detail != null) {
+ str.append ("::");
+ str.append (detail);
+ }
+
+ str.append_c ('"');
+
+ return new CCodeConstant (str.str);
+ }
+
+ public bool get_signal_has_emitter (Signal sig) {
+ return sig.get_attribute ("HasEmitter") != null;
+ }
+
+ public CCodeConstant get_property_canonical_cconstant (Property prop) {
+ return new CCodeConstant ("\"%s\"".printf (prop.name.replace ("_", "-")));
+ }
+
public override void visit_class (Class cl) {
}
}
public CCodeFunctionCall generate_instance_cast (CCodeExpression expr, TypeSymbol type) {
- var result = new CCodeFunctionCall (new CCodeIdentifier (type.get_upper_case_cname (null)));
+ var result = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_upper_case_name (type, null)));
result.add_argument (expr);
return result;
}
void generate_struct_destroy_function (Struct st) {
- if (cfile.add_declaration (st.get_destroy_function ())) {
+ if (cfile.add_declaration (get_ccode_destroy_function (st))) {
// only generate function once per source file
return;
}
- var function = new CCodeFunction (st.get_destroy_function (), "void");
+ var function = new CCodeFunction (get_ccode_destroy_function (st), "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (st) + "*"));
push_context (new EmitContext ());
push_function (function);
}
void generate_struct_copy_function (Struct st) {
- if (cfile.add_declaration (st.get_copy_function ())) {
+ if (cfile.add_declaration (get_ccode_copy_function (st))) {
// only generate function once per source file
return;
}
- var function = new CCodeFunction (st.get_copy_function (), "void");
+ var function = new CCodeFunction (get_ccode_copy_function (st), "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", "const " + st.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("dest", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", "const " + get_ccode_name (st) + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (st) + "*"));
push_context (new EmitContext ());
push_function (function);
ccode.add_return (default_value_for_type (return_type, false));
}
- public virtual string? get_custom_creturn_type (Method m) {
- return null;
- }
-
public virtual void generate_dynamic_method_wrapper (DynamicMethod method) {
}
if (is_constant_ccode_expression (cexpr)) {
var cname = "_tmp%d_label%d".printf (label_temp_id, label_count++);
- ccode.add_declaration (gquark_type.get_cname (), new CCodeVariableDeclarator (cname, czero), CCodeModifiers.STATIC);
+ ccode.add_declaration (get_ccode_name (gquark_type), new CCodeVariableDeclarator (cname, czero), CCodeModifiers.STATIC);
}
}
}
*/
public class Vala.CCodeDelegateModule : CCodeArrayModule {
public override void generate_delegate_declaration (Delegate d, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, get_ccode_name (d))) {
return;
}
- string return_type_cname = d.return_type.get_cname ();
+ string return_type_cname = get_ccode_name (d.return_type);
if (d.return_type.is_real_non_null_struct_type ()) {
// structs are returned via out parameter
return_type_cname = "void";
}
- if (return_type_cname == d.get_cname ()) {
+ if (return_type_cname == get_ccode_name (d)) {
// recursive delegate
return_type_cname = "GCallback";
} else {
generate_type_declaration (d.return_type, decl_space);
}
- var cfundecl = new CCodeFunctionDeclarator (d.get_cname ());
+ var cfundecl = new CCodeFunctionDeclarator (get_ccode_name (d));
foreach (Parameter param in d.get_parameters ()) {
var cparam = generate_parameter (param, decl_space, new HashMap<int,CCodeParameter> (), null);
cfundecl.add_parameter (cparam);
// handle array parameters
- if (!param.no_array_length && param.variable_type is ArrayType) {
+ if (get_ccode_array_length (param) && param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
var length_ctype = "int";
}
}
}
- if (!d.no_array_length && d.return_type is ArrayType) {
+ if (get_ccode_array_length (d) && d.return_type is ArrayType) {
// return array length if appropriate
var array_type = (ArrayType) d.return_type;
- var array_length_type = d.array_length_type != null ? d.array_length_type : "int";
+ var array_length_type = get_ccode_array_length_type (d) != null ? get_ccode_array_length_type (d) : "int";
array_length_type += "*";
for (int dim = 1; dim <= array_type.rank; dim++) {
}
}
} else if (d.return_type.is_real_non_null_struct_type ()) {
- var cparam = new CCodeParameter ("result", "%s*".printf (d.return_type.get_cname ()));
+ var cparam = new CCodeParameter ("result", "%s*".printf (get_ccode_name (d.return_type)));
cfundecl.add_parameter (cparam);
}
if (d.has_target) {
if (dynamic_sig != null) {
delegate_name = get_dynamic_signal_cname (dynamic_sig);
} else if (sig != null) {
- delegate_name = sig.parent_symbol.get_lower_case_cprefix () + sig.get_cname ();
+ delegate_name = get_ccode_lower_case_prefix (sig.parent_symbol) + get_ccode_name (sig);
} else {
- delegate_name = Symbol.camel_case_to_lower_case (d.get_cname ());
+ delegate_name = Symbol.camel_case_to_lower_case (get_ccode_name (d));
}
- string wrapper_name = "_%s_%s".printf (m.get_cname (), delegate_name);
+ string wrapper_name = "_%s_%s".printf (get_ccode_name (m), delegate_name);
if (!add_wrapper (wrapper_name)) {
// wrapper already defined
// declaration
- string return_type_cname = d.return_type.get_cname ();
+ string return_type_cname = get_ccode_name (d.return_type);
if (d.return_type.is_real_non_null_struct_type ()) {
// structs are returned via out parameter
if (d.has_target) {
var cparam = new CCodeParameter ("self", "gpointer");
- cparam_map.set (get_param_pos (d.cinstance_parameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_instance_pos (d)), cparam);
}
if (d.sender_type != null) {
&& param.variable_type is ArrayType
&& ((ArrayType) param.variable_type).element_type.data_type == string_type.data_type) {
// use null-terminated string arrays for dynamic signals for compatibility reasons
- param.no_array_length = true;
- param.array_null_terminated = true;
+ param.set_attribute_bool ("CCode", "array_length", false);
+ param.set_attribute_bool ("CCode", "array_null_terminated", true);
}
generate_parameter (param, cfile, cparam_map, null);
}
- if (!d.no_array_length && d.return_type is ArrayType) {
+ if (get_ccode_array_length (d) && d.return_type is ArrayType) {
// return array length if appropriate
var array_type = (ArrayType) d.return_type;
- var array_length_type = d.array_length_type != null ? d.array_length_type : "int";
+ var array_length_type = get_ccode_array_length_type (d) != null ? get_ccode_array_length_type (d) : "int";
array_length_type += "*";
for (int dim = 1; dim <= array_type.rank; dim++) {
var cparam = new CCodeParameter (get_array_length_cname ("result", dim), array_length_type);
- cparam_map.set (get_param_pos (d.carray_length_parameter_position + 0.01 * dim), cparam);
+ cparam_map.set (get_param_pos (get_ccode_array_length_pos (d) + 0.01 * dim), cparam);
}
} else if (d.return_type is DelegateType) {
// return delegate target if appropriate
if (deleg_type.delegate_symbol.has_target) {
var cparam = new CCodeParameter (get_delegate_target_cname ("result"), "void**");
- cparam_map.set (get_param_pos (d.cdelegate_target_parameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (d)), cparam);
if (deleg_type.value_owned) {
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname ("result"), "GDestroyNotify*");
- cparam_map.set (get_param_pos (d.cdelegate_target_parameter_position + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (d) + 0.01), cparam);
}
}
} else if (d.return_type.is_real_non_null_struct_type ()) {
- var cparam = new CCodeParameter ("result", "%s*".printf (d.return_type.get_cname ()));
+ var cparam = new CCodeParameter ("result", "%s*".printf (get_ccode_name (d.return_type)));
cparam_map.set (get_param_pos (-3), cparam);
}
i = 1;
}
}
- carg_map.set (get_param_pos (m.cinstance_parameter_position), arg);
+ carg_map.set (get_param_pos (get_ccode_instance_pos (m)), arg);
}
bool first = true;
foreach (Parameter param in m.get_parameters ()) {
if (first && d.sender_type != null && m.get_parameters ().size == d.get_parameters ().size + 1) {
// sender parameter
- carg_map.set (get_param_pos (param.cparameter_position), new CCodeIdentifier ("_sender"));
+ carg_map.set (get_param_pos (get_ccode_pos (param)), new CCodeIdentifier ("_sender"));
first = false;
continue;
CCodeExpression arg;
arg = new CCodeIdentifier (get_variable_cname (d_params.get (i).name));
- carg_map.set (get_param_pos (param.cparameter_position), arg);
+ carg_map.set (get_param_pos (get_ccode_pos (param)), arg);
// handle array arguments
- if (!param.no_array_length && param.variable_type is ArrayType) {
+ if (get_ccode_array_length (param) && param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression clength;
- if (d_params.get (i).array_null_terminated) {
+ if (get_ccode_array_null_terminated (d_params.get (i))) {
requires_array_length = true;
var len_call = new CCodeFunctionCall (new CCodeIdentifier ("_vala_array_length"));
len_call.add_argument (new CCodeIdentifier (d_params.get (i).name));
clength = len_call;
- } else if (d_params.get (i).no_array_length) {
+ } else if (!get_ccode_array_length (d_params.get (i))) {
clength = new CCodeConstant ("-1");
} else {
clength = new CCodeIdentifier (get_parameter_array_length_cname (d_params.get (i), dim));
}
- carg_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), clength);
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), clength);
}
} else if (param.variable_type is DelegateType) {
var deleg_type = (DelegateType) param.variable_type;
if (deleg_type.delegate_symbol.has_target) {
var ctarget = new CCodeIdentifier (get_delegate_target_cname (d_params.get (i).name));
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), ctarget);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), ctarget);
if (deleg_type.value_owned) {
var ctarget_destroy_notify = new CCodeIdentifier (get_delegate_target_destroy_notify_cname (d_params.get (i).name));
- carg_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), ctarget_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), ctarget_destroy_notify);
}
}
}
i++;
}
- if (!m.no_array_length && m.return_type is ArrayType) {
+ if (get_ccode_array_length (m) && m.return_type is ArrayType) {
var array_type = (ArrayType) m.return_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression clength;
- if (d.no_array_length) {
+ if (!get_ccode_array_length (d)) {
clength = new CCodeConstant ("NULL");
} else {
clength = new CCodeIdentifier (get_array_length_cname ("result", dim));
}
- carg_map.set (get_param_pos (m.carray_length_parameter_position + 0.01 * dim), clength);
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (m) + 0.01 * dim), clength);
}
} else if (m.return_type is DelegateType) {
var deleg_type = (DelegateType) m.return_type;
if (deleg_type.delegate_symbol.has_target) {
var ctarget = new CCodeIdentifier (get_delegate_target_cname ("result"));
- carg_map.set (get_param_pos (m.cdelegate_target_parameter_position), ctarget);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m)), ctarget);
if (deleg_type.value_owned) {
var ctarget_destroy_notify = new CCodeIdentifier (get_delegate_target_destroy_notify_cname ("result"));
- carg_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), ctarget_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), ctarget_destroy_notify);
}
}
} else if (m.return_type.is_real_non_null_struct_type ()) {
carg_map.set (get_param_pos (-1), new CCodeIdentifier ("error"));
}
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (m)));
// append C arguments in the right order
last_pos = -1;
if (m.closure) {
int block_id = get_block_id (current_closure_block);
destroy_notify = new CCodeIdentifier ("block%d_data_unref".printf (block_id));
- } else if (get_this_type () != null && m.binding != MemberBinding.STATIC && !m.is_async_callback && m.this_parameter.variable_type.data_type.is_reference_counting ()) {
+ } else if (get_this_type () != null && m.binding != MemberBinding.STATIC && !m.is_async_callback && is_reference_counting (m.this_parameter.variable_type.data_type)) {
destroy_notify = get_destroy_func_expression (m.this_parameter.variable_type);
} else if (in_constructor) {
destroy_notify = new CCodeIdentifier ("g_object_unref");
return base.generate_parameter (param, decl_space, cparam_map, carg_map);
}
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
string target_ctypename = "void*";
string target_destroy_notify_ctypename = "GDestroyNotify";
if (param.parent_symbol is Delegate
- && param.variable_type.get_cname () == ((Delegate) param.parent_symbol).get_cname ()) {
+ && get_ccode_name (param.variable_type) == get_ccode_name (param.parent_symbol)) {
// recursive delegate
ctypename = "GCallback";
}
var main_cparam = new CCodeParameter (get_variable_cname (param.name), ctypename);
- cparam_map.set (get_param_pos (param.cparameter_position), main_cparam);
+ cparam_map.set (get_param_pos (get_ccode_pos (param)), main_cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cparameter_position), get_variable_cexpression (param.name));
+ carg_map.set (get_param_pos (get_ccode_pos (param)), get_variable_cexpression (param.name));
}
if (param.variable_type is DelegateType) {
if (d.has_target) {
var cparam = new CCodeParameter (get_delegate_target_cname (get_variable_cname (param.name)), target_ctypename);
- cparam_map.set (get_param_pos (param.cdelegate_target_parameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), get_variable_cexpression (cparam.name));
}
if (deleg_type.value_owned) {
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname (get_variable_cname (param.name)), target_destroy_notify_ctypename);
- cparam_map.set (get_param_pos (param.cdelegate_target_parameter_position + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position + 0.01), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), get_variable_cexpression (cparam.name));
}
}
}
} else if (param.variable_type is MethodType) {
var cparam = new CCodeParameter (get_delegate_target_cname (get_variable_cname (param.name)), target_ctypename);
- cparam_map.set (get_param_pos (param.cdelegate_target_parameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), get_variable_cexpression (cparam.name));
}
}
if (expr.inner is BaseAccess) {
if (m.base_method != null) {
var base_class = (Class) m.base_method.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class, null))));
- set_cvalue (expr, new CCodeMemberAccess.pointer (vcast, m.vfunc_name));
+ set_cvalue (expr, new CCodeMemberAccess.pointer (vcast, get_ccode_vfunc_name (m)));
return;
} else if (m.base_interface_method != null) {
var base_iface = (Interface) m.base_interface_method.parent_symbol;
- string parent_iface_var = "%s_%s_parent_iface".printf (current_class.get_lower_case_cname (null), base_iface.get_lower_case_cname (null));
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class), get_ccode_lower_case_name (base_iface));
- set_cvalue (expr, new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), m.vfunc_name));
+ set_cvalue (expr, new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), get_ccode_vfunc_name (m)));
return;
}
}
if (m.base_method != null) {
if (!method_has_wrapper (m.base_method)) {
var base_class = (Class) m.base_method.parent_symbol;
- var vclass = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (base_class.get_upper_case_cname (null))));
+ var vclass = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (base_class))));
vclass.add_argument (pub_inst);
set_cvalue (expr, new CCodeMemberAccess.pointer (vclass, m.name));
} else {
- set_cvalue (expr, new CCodeIdentifier (m.base_method.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m.base_method)));
}
} else if (m.base_interface_method != null) {
- set_cvalue (expr, new CCodeIdentifier (m.base_interface_method.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m.base_interface_method)));
} else if (m is CreationMethod) {
- set_cvalue (expr, new CCodeIdentifier (m.get_real_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_real_name (m)));
} else {
- set_cvalue (expr, new CCodeIdentifier (m.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m)));
}
set_delegate_target_destroy_notify (expr, new CCodeConstant ("NULL"));
// expr.inner is null in the special case of referencing the method in a constant initializer
var delegate_target = (CCodeExpression) get_ccodenode (expr.inner);
delegate_type = expr.target_type as DelegateType;
- if ((expr.value_type.value_owned || (delegate_type != null && delegate_type.is_called_once)) && expr.inner.value_type.data_type != null && expr.inner.value_type.data_type.is_reference_counting ()) {
+ if ((expr.value_type.value_owned || (delegate_type != null && delegate_type.is_called_once)) && expr.inner.value_type.data_type != null && is_reference_counting (expr.inner.value_type.data_type)) {
var ref_call = new CCodeFunctionCall (get_dup_func_expression (expr.inner.value_type, expr.source_reference));
ref_call.add_argument (delegate_target);
delegate_target = ref_call;
generate_enum_declaration ((Enum) ev.parent_symbol, cfile);
- set_cvalue (expr, new CCodeConstant (ev.get_cname ()));
+ set_cvalue (expr, new CCodeConstant (get_ccode_name (ev)));
} else if (expr.symbol_reference is Constant) {
var c = (Constant) expr.symbol_reference;
}
set_cvalue (expr, new CCodeConstant ("\"%s\"".printf (s)));
} else {
- set_cvalue (expr, new CCodeIdentifier (c.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (c)));
}
if (array_type != null) {
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("G_N_ELEMENTS"));
- ccall.add_argument (new CCodeIdentifier (c.get_cname ()));
+ ccall.add_argument (new CCodeIdentifier (get_ccode_name (c)));
append_array_length (expr, ccall);
}
} else if (expr.symbol_reference is Property) {
if (expr.inner is BaseAccess) {
if (prop.base_property != null) {
var base_class = (Class) prop.base_property.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class, null))));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, "get_%s".printf (prop.name)));
ccall.add_argument (get_cvalue (expr.inner));
set_cvalue (expr, ccall);
} else if (prop.base_interface_property != null) {
var base_iface = (Interface) prop.base_interface_property.parent_symbol;
- string parent_iface_var = "%s_%s_parent_iface".printf (current_class.get_lower_case_cname (null), base_iface.get_lower_case_cname (null));
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class), get_ccode_lower_case_name (base_iface));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), "get_%s".printf (prop.name)));
ccall.add_argument (get_cvalue (expr.inner));
!(prop.property_type is ArrayType || prop.property_type is DelegateType)) {
CCodeExpression inst;
inst = new CCodeMemberAccess.pointer (pub_inst, "priv");
- set_cvalue (expr, new CCodeMemberAccess.pointer (inst, prop.field.get_cname()));
- } else if (!prop.no_accessor_method) {
+ set_cvalue (expr, new CCodeMemberAccess.pointer (inst, get_ccode_name (prop.field)));
+ } else if (!get_ccode_no_accessor_method (prop)) {
var base_property = prop;
if (prop.base_property != null) {
base_property = prop.base_property;
if (prop is DynamicProperty) {
getter_cname = get_dynamic_property_getter_cname ((DynamicProperty) prop);
} else {
- getter_cname = base_property.get_accessor.get_cname ();
+ getter_cname = get_ccode_name (base_property.get_accessor);
}
var ccall = new CCodeFunctionCall (new CCodeIdentifier (getter_cname));
ccode.add_assignment (ctemp, ccall);
array_type = base_property.property_type as ArrayType;
- if (array_type != null && !base_property.no_array_length) {
+ if (array_type != null && get_ccode_array_length (base_property)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_array_length_cvalue (temp_value, dim)));
}
ccall.add_argument (pub_inst);
// property name is second argument of g_object_get
- ccall.add_argument (prop.get_canonical_cconstant ());
+ ccall.add_argument (get_property_canonical_cconstant (prop));
// g_object_get always returns owned values
// therefore, property getters of properties
public override TargetValue get_parameter_cvalue (Parameter param) {
var result = new GLibValue (param.variable_type.copy ());
result.lvalue = true;
- result.array_null_terminated = param.array_null_terminated;
- if (param.has_array_length_cexpr) {
- result.array_length_cexpr = new CCodeConstant (param.get_array_length_cexpr ());
+ result.array_null_terminated = get_ccode_array_null_terminated (param);
+ if (get_ccode_array_length_expr (param) != null) {
+ result.array_length_cexpr = new CCodeConstant (get_ccode_array_length_expr (param));
}
- result.ctype = param.ctype;
+ result.ctype = get_ccode_type (param);
var array_type = result.value_type as ArrayType;
var delegate_type = result.value_type as DelegateType;
block = ((Method) param.parent_symbol).body;
}
result.cvalue = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_variable_cname (param.name));
- if (array_type != null && !param.no_array_length) {
+ if (array_type != null && get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
result.append_array_length_cvalue (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_parameter_array_length_cname (param, dim)));
}
}
}
if (!param.captured && array_type != null) {
- if (!param.no_array_length && !param.array_null_terminated) {
+ if (get_ccode_array_length (param) && !get_ccode_array_null_terminated (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression length_expr = get_variable_cexpression (get_parameter_array_length_cname (param, dim));
if (param.direction == ParameterDirection.OUT) {
result.actual_value_type = field.variable_type.get_actual_type (instance.value_type, null, field);
}
result.lvalue = true;
- result.array_null_terminated = field.array_null_terminated;
- if (field.has_array_length_cexpr) {
- result.array_length_cexpr = new CCodeConstant (field.get_array_length_cexpr ());
+ result.array_null_terminated = get_ccode_array_null_terminated (field);
+ if (get_ccode_array_length_expr (field) != null) {
+ result.array_length_cexpr = new CCodeConstant (get_ccode_array_length_expr (field));
}
- result.ctype = field.get_ctype ();
+ result.ctype = get_ccode_type (field);
var array_type = result.value_type as ArrayType;
var delegate_type = result.value_type as DelegateType;
inst = pub_inst;
}
if (instance_target_type.data_type.is_reference_type () || (instance != null && instance.value_type is PointerType)) {
- result.cvalue = new CCodeMemberAccess.pointer (inst, field.get_cname ());
+ result.cvalue = new CCodeMemberAccess.pointer (inst, get_ccode_name (field));
} else {
- result.cvalue = new CCodeMemberAccess (inst, field.get_cname ());
+ result.cvalue = new CCodeMemberAccess (inst, get_ccode_name (field));
}
- if (array_type != null && !field.no_array_length) {
+ if (array_type != null && get_ccode_array_length (field)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression length_expr = null;
string length_cname;
- if (field.has_array_length_cname) {
- length_cname = field.get_array_length_cname ();
+ if (get_ccode_array_length_name (field) != null) {
+ length_cname = get_ccode_array_length_name (field);
} else {
length_cname = get_array_length_cname (field.name, dim);
}
set_array_size_cvalue (result, new CCodeMemberAccess (inst, size_cname));
}
}
- } else if (delegate_type != null && delegate_type.delegate_symbol.has_target && !field.no_delegate_target) {
- string target_cname = get_delegate_target_cname (field.get_cname ());
- string target_destroy_notify_cname = get_delegate_target_destroy_notify_cname (field.get_cname ());
+ } else if (delegate_type != null && delegate_type.delegate_symbol.has_target && get_ccode_delegate_target (field)) {
+ string target_cname = get_delegate_target_cname (get_ccode_name (field));
+ string target_destroy_notify_cname = get_delegate_target_destroy_notify_cname (get_ccode_name (field));
if (((TypeSymbol) field.parent_symbol).is_reference_type ()) {
result.delegate_target_cvalue = new CCodeMemberAccess.pointer (inst, target_cname);
}
} else if (field.binding == MemberBinding.CLASS) {
var cl = (Class) field.parent_symbol;
- var cast = new CCodeFunctionCall (new CCodeIdentifier (cl.get_upper_case_cname (null) + "_CLASS"));
+ var cast = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_upper_case_name (cl, null) + "_CLASS"));
CCodeExpression klass;
if (instance == null) {
cast.add_argument (klass);
if (field.access == SymbolAccessibility.PRIVATE) {
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (cl.get_upper_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (get_ccode_upper_case_name (cl))));
ccall.add_argument (klass);
- result.cvalue = new CCodeMemberAccess.pointer (ccall, field.get_cname ());
+ result.cvalue = new CCodeMemberAccess.pointer (ccall, get_ccode_name (field));
} else {
- result.cvalue = new CCodeMemberAccess.pointer (cast, field.get_cname ());
+ result.cvalue = new CCodeMemberAccess.pointer (cast, get_ccode_name (field));
}
} else {
generate_field_declaration (field, cfile);
- result.cvalue = new CCodeIdentifier (field.get_cname ());
+ result.cvalue = new CCodeIdentifier (get_ccode_name (field));
- if (array_type != null && !field.no_array_length) {
+ if (array_type != null && get_ccode_array_length (field)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
string length_cname;
- if (field.has_array_length_cname) {
- length_cname = field.get_array_length_cname ();
+ if (get_ccode_array_length_name (field) != null) {
+ length_cname = get_ccode_array_length_name (field);
} else {
- length_cname = get_array_length_cname (field.get_cname (), dim);
+ length_cname = get_array_length_cname (get_ccode_name (field), dim);
}
result.append_array_length_cvalue (new CCodeIdentifier (length_cname));
}
if (array_type.rank == 1 && field.is_internal_symbol ()) {
- set_array_size_cvalue (result, new CCodeIdentifier (get_array_size_cname (field.get_cname ())));
+ set_array_size_cvalue (result, new CCodeIdentifier (get_array_size_cname (get_ccode_name (field))));
}
- } else if (delegate_type != null && delegate_type.delegate_symbol.has_target && !field.no_delegate_target) {
- result.delegate_target_cvalue = new CCodeIdentifier (get_delegate_target_cname (field.get_cname ()));
+ } else if (delegate_type != null && delegate_type.delegate_symbol.has_target && get_ccode_delegate_target (field)) {
+ result.delegate_target_cvalue = new CCodeIdentifier (get_delegate_target_cname (get_ccode_name (field)));
if (result.value_type.value_owned) {
- result.delegate_target_destroy_notify_cvalue = new CCodeIdentifier (get_delegate_target_destroy_notify_cname (field.get_cname ()));
+ result.delegate_target_destroy_notify_cvalue = new CCodeIdentifier (get_delegate_target_destroy_notify_cname (get_ccode_name (field)));
}
}
}
result.array_length_cvalues = null;
result.append_array_length_cvalue (new CCodeConstant (array_type.length.to_string ()));
result.lvalue = false;
- } else if (variable.array_null_terminated) {
+ } else if (get_ccode_array_null_terminated (variable)) {
requires_array_length = true;
var len_call = new CCodeFunctionCall (new CCodeIdentifier ("_vala_array_length"));
len_call.add_argument (result.cvalue);
result.array_length_cvalues = null;
result.append_array_length_cvalue (len_call);
result.lvalue = false;
- } else if (variable.has_array_length_cexpr) {
- var length_expr = new CCodeConstant (variable.get_array_length_cexpr ());
+ } else if (get_ccode_array_length_expr (variable) != null) {
+ var length_expr = new CCodeConstant (get_ccode_array_length_expr (variable));
result.array_length_cvalues = null;
result.append_array_length_cvalue (length_expr);
result.lvalue = false;
- } else if (variable.no_array_length) {
+ } else if (!get_ccode_array_length (variable)) {
result.array_length_cvalues = null;
for (int dim = 1; dim <= array_type.rank; dim++) {
result.append_array_length_cvalue (new CCodeConstant ("-1"));
}
result.lvalue = false;
- } else if (variable.array_length_type != null) {
+ } else if (get_ccode_array_length_type (variable) != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
// cast if variable does not use int for array length
result.array_length_cvalues[dim - 1] = new CCodeCastExpression (result.array_length_cvalues[dim - 1], "gint");
}
result.array_size_cvalue = null;
} else if (delegate_type != null) {
- if (!delegate_type.delegate_symbol.has_target || variable.no_delegate_target) {
+ if (!delegate_type.delegate_symbol.has_target || !get_ccode_delegate_target (variable)) {
result.delegate_target_cvalue = new CCodeConstant ("NULL");
}
var cl = (Class) ((ObjectType) itype).type_symbol;
m = cl.default_construction_method;
generate_method_declaration (m, cfile);
- ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
} else if (itype is StructValueType) {
// constructor
var st = (Struct) ((StructValueType) itype).type_symbol;
m = st.default_construction_method;
generate_method_declaration (m, cfile);
- ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
} else if (itype is DelegateType) {
deleg = ((DelegateType) itype).delegate_symbol;
}
if (m != null && m.coroutine) {
// async call
- async_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
- var finish_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_finish_cname ()));
+ async_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (m)));
+ var finish_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_finish_name (m)));
if (ma.inner is BaseAccess) {
if (m.base_method != null) {
var base_class = (Class) m.base_method.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class, null))));
- async_call.call = new CCodeMemberAccess.pointer (vcast, m.vfunc_name);
- finish_call.call = new CCodeMemberAccess.pointer (vcast, m.get_finish_vfunc_name ());
+ async_call.call = new CCodeMemberAccess.pointer (vcast, get_ccode_vfunc_name (m));
+ finish_call.call = new CCodeMemberAccess.pointer (vcast, get_ccode_finish_vfunc_name (m));
} else if (m.base_interface_method != null) {
var base_iface = (Interface) m.base_interface_method.parent_symbol;
- string parent_iface_var = "%s_%s_parent_iface".printf (current_class.get_lower_case_cname (null), base_iface.get_lower_case_cname (null));
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class), get_ccode_lower_case_name (base_iface));
- async_call.call = new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), m.vfunc_name);
- finish_call.call = new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), m.get_finish_vfunc_name ());
+ async_call.call = new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), get_ccode_vfunc_name (m));
+ finish_call.call = new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), get_ccode_finish_vfunc_name (m));
}
}
foreach (DataType base_type in current_class.get_base_types ()) {
if (base_type.data_type is Class) {
List<TypeParameter> type_parameters = null;
- if (m.get_real_cname () == "g_object_new") {
+ if (get_ccode_real_name (m) == "g_object_new") {
// gobject-style chainup
type_parameters = ((Class) base_type.data_type).get_type_parameters ();
}
}
} else if (m is CreationMethod && m.parent_symbol is Struct) {
ccall.add_argument (new CCodeIdentifier ("self"));
- } else if (m != null && m.get_type_parameters ().size > 0 && !m.has_generic_type_parameter && !m.simple_generics) {
+ } else if (m != null && m.get_type_parameters ().size > 0 && !get_ccode_has_generic_type_parameter (m) && !get_ccode_simple_generics (m)) {
// generic method
add_generic_type_arguments (in_arg_map, ma.get_type_arguments (), expr);
}
if (m is ArrayResizeMethod) {
var array_type = (ArrayType) ma.inner.value_type;
- in_arg_map.set (get_param_pos (0), new CCodeIdentifier (array_type.element_type.get_cname ()));
+ in_arg_map.set (get_param_pos (0), new CCodeIdentifier (get_ccode_name (array_type.element_type)));
} else if (m is ArrayMoveMethod) {
requires_array_move = true;
}
instance = new CCodeIdentifier ("_data_");
}
- in_arg_map.set (get_param_pos (m.cinstance_parameter_position), instance);
- out_arg_map.set (get_param_pos (m.cinstance_parameter_position), instance);
+ in_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), instance);
+ out_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), instance);
} else if (m != null && m.binding == MemberBinding.INSTANCE && !(m is CreationMethod)) {
var instance_value = ma.inner.target_value;
if ((ma.member_name == "begin" || ma.member_name == "end") && ma.inner.symbol_reference == ma.symbol_reference) {
instance = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_cvalue_ (instance_value));
}
- in_arg_map.set (get_param_pos (m.cinstance_parameter_position), instance);
- out_arg_map.set (get_param_pos (m.cinstance_parameter_position), instance);
+ in_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), instance);
+ out_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), instance);
} else if (m != null && m.binding == MemberBinding.CLASS) {
var cl = (Class) m.parent_symbol;
- var cast = new CCodeFunctionCall (new CCodeIdentifier (cl.get_upper_case_cname (null) + "_CLASS"));
+ var cast = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_upper_case_name (cl, null) + "_CLASS"));
CCodeExpression klass;
if (ma.inner == null) {
}
cast.add_argument (klass);
- in_arg_map.set (get_param_pos (m.cinstance_parameter_position), cast);
- out_arg_map.set (get_param_pos (m.cinstance_parameter_position), cast);
+ in_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), cast);
+ out_arg_map.set (get_param_pos (get_ccode_instance_pos (m)), cast);
}
- if (m != null && m.has_generic_type_parameter) {
+ if (m != null && get_ccode_has_generic_type_parameter (m)) {
// insert type argument for macros
if (m.get_type_parameters ().size > 0) {
// generic method
int type_param_index = 0;
foreach (var type_arg in ma.get_type_arguments ()) {
- in_arg_map.set (get_param_pos (m.generic_type_parameter_position + 0.01 * type_param_index), new CCodeIdentifier (type_arg.get_cname ()));
+ in_arg_map.set (get_param_pos (get_ccode_generic_type_pos (m) + 0.01 * type_param_index), new CCodeIdentifier (get_ccode_name (type_arg)));
type_param_index++;
}
} else {
// method in generic type
int type_param_index = 0;
foreach (var type_arg in ma.inner.value_type.get_type_arguments ()) {
- in_arg_map.set (get_param_pos (m.generic_type_parameter_position + 0.01 * type_param_index), new CCodeIdentifier (type_arg.get_cname ()));
+ in_arg_map.set (get_param_pos (get_ccode_generic_type_pos (m) + 0.01 * type_param_index), new CCodeIdentifier (get_ccode_name (type_arg)));
type_param_index++;
}
}
if (m is ArrayMoveMethod) {
var array_type = (ArrayType) ma.inner.value_type;
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
in_arg_map.set (get_param_pos (0.1), csizeof);
} else if (m is DynamicMethod) {
m.clear_parameters ();
}
generate_dynamic_method_wrapper ((DynamicMethod) m);
} else if (m is CreationMethod && context.profile == Profile.GOBJECT && m.parent_symbol is Class) {
- ccode.add_assignment (new CCodeIdentifier ("self"), new CCodeCastExpression (ccall, current_class.get_cname () + "*"));
+ ccode.add_assignment (new CCodeIdentifier ("self"), new CCodeCastExpression (ccall, CCodeBaseModule.get_ccode_name (current_class) + "*"));
if (current_method.body.captured) {
// capture self after setting it
var unary = arg as UnaryExpression;
if (unary == null || unary.operator != UnaryOperator.OUT) {
- if (!param.no_array_length && param.variable_type is ArrayType) {
+ if (get_ccode_array_length (param) && param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression? array_length_expr = null;
- if (param.array_length_type != null) {
- array_length_expr = new CCodeCastExpression (get_array_length_cexpression (arg, dim), param.array_length_type);
+ if (get_ccode_array_length_type (param) != null) {
+ array_length_expr = new CCodeCastExpression (get_array_length_cexpression (arg, dim), get_ccode_array_length_type (param));
} else {
array_length_expr = get_array_length_cexpression (arg, dim);
}
- carg_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), array_length_expr);
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), array_length_expr);
}
} else if (param.variable_type is DelegateType) {
var deleg_type = (DelegateType) param.variable_type;
CCodeExpression delegate_target_destroy_notify;
var delegate_target = get_delegate_target_cexpression (arg, out delegate_target_destroy_notify);
assert (delegate_target != null);
- if (param.ctype == "GClosure*") {
+ if (get_ccode_type (param) == "GClosure*") {
// one single GClosure parameter
var closure_new = new CCodeFunctionCall (new CCodeIdentifier ("g_cclosure_new"));
closure_new.add_argument (new CCodeCastExpression (cexpr, "GCallback"));
closure_new.add_argument (delegate_target_destroy_notify);
cexpr = new CCodeConditionalExpression (new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, cexpr, new CCodeIdentifier ("NULL")), new CCodeIdentifier ("NULL"), closure_new);
} else {
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), delegate_target);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), delegate_target);
if (deleg_type.value_owned) {
assert (delegate_target_destroy_notify != null);
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position + 0.01), delegate_target_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), delegate_target_destroy_notify);
}
}
}
} else if (param.variable_type is MethodType) {
// callbacks in dynamic method calls
CCodeExpression delegate_target_destroy_notify;
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), get_delegate_target_cexpression (arg, out delegate_target_destroy_notify));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), get_delegate_target_cexpression (arg, out delegate_target_destroy_notify));
} else if (param.variable_type is GenericType) {
- if (m != null && m.simple_generics) {
+ if (m != null && get_ccode_simple_generics (m)) {
var generic_type = (GenericType) param.variable_type;
int type_param_index = m.get_type_parameter_index (generic_type.type_parameter.name);
var type_arg = ma.get_type_arguments ().get (type_param_index);
if (param.variable_type.value_owned) {
if (requires_copy (type_arg)) {
- carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), get_destroy_func_expression (type_arg));
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), get_destroy_func_expression (type_arg));
} else {
- carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), new CCodeConstant ("NULL"));
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), new CCodeConstant ("NULL"));
}
}
}
cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_cvalue (arg));
- if (!param.no_array_length && param.variable_type is ArrayType) {
+ if (get_ccode_array_length (param) && param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
var array_length_type = int_type;
- if (param.array_length_type != null) {
- array_length_type = new CType (param.array_length_type);
+ if (get_ccode_array_length_type (param) != null) {
+ array_length_type = new CType (get_ccode_array_length_type (param));
}
for (int dim = 1; dim <= array_type.rank; dim++) {
var temp_array_length = get_temp_variable (array_length_type);
emit_temp_var (temp_array_length);
append_array_length (arg, get_variable_cexpression (temp_array_length.name));
- carg_map.set (get_param_pos (param.carray_length_parameter_position + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_array_lengths (arg).get (dim - 1)));
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_array_lengths (arg).get (dim - 1)));
}
} else if (param.variable_type is DelegateType) {
var deleg_type = (DelegateType) param.variable_type;
temp_var = get_temp_variable (new PointerType (new VoidType ()));
emit_temp_var (temp_var);
set_delegate_target (arg, get_variable_cexpression (temp_var.name));
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target (arg)));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target (arg)));
if (deleg_type.value_owned) {
temp_var = get_temp_variable (gdestroynotify_type);
emit_temp_var (temp_var);
set_delegate_target_destroy_notify (arg, get_variable_cexpression (temp_var.name));
- carg_map.set (get_param_pos (param.cdelegate_target_parameter_position + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target_destroy_notify (arg)));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target_destroy_notify (arg)));
}
}
}
}
- if (param.ctype != null) {
- cexpr = new CCodeCastExpression (cexpr, param.ctype);
+ if (get_ccode_type (param) != null) {
+ cexpr = new CCodeCastExpression (cexpr, get_ccode_type (param));
}
} else {
cexpr = handle_struct_argument (null, arg, cexpr);
}
- arg_pos = get_param_pos (param.cparameter_position, ellipsis);
+ arg_pos = get_param_pos (get_ccode_pos (param), ellipsis);
} else {
// default argument position
cexpr = handle_struct_argument (null, arg, cexpr);
if (m != null && m.return_type is ArrayType && async_call != ccall) {
var array_type = (ArrayType) m.return_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
- if (m.array_null_terminated) {
+ if (get_ccode_array_null_terminated (m)) {
// handle calls to methods returning null-terminated arrays
var temp_var = get_temp_variable (itype.get_return_type (), true, null, false);
var temp_ref = get_variable_cexpression (temp_var.name);
len_call.add_argument (temp_ref);
append_array_length (expr, len_call);
- } else if (!m.no_array_length) {
+ } else if (get_ccode_array_length (m)) {
LocalVariable temp_var;
- if (m.array_length_type == null) {
+ if (get_ccode_array_length_type (m) == null) {
temp_var = get_temp_variable (int_type);
} else {
- temp_var = get_temp_variable (new CType (m.array_length_type));
+ temp_var = get_temp_variable (new CType (get_ccode_array_length_type (m)));
}
var temp_ref = get_variable_cexpression (temp_var.name);
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (m.carray_length_parameter_position + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_array_length_pos (m) + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
append_array_length (expr, temp_ref);
} else {
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (m.cdelegate_target_parameter_position), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_delegate_target_pos (m)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
set_delegate_target (expr, temp_ref);
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
set_delegate_target_destroy_notify (expr, temp_ref);
} else {
if (deleg != null && deleg.return_type is ArrayType) {
var array_type = (ArrayType) deleg.return_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
- if (deleg.array_null_terminated) {
+ if (get_ccode_array_null_terminated (deleg)) {
// handle calls to methods returning null-terminated arrays
var temp_var = get_temp_variable (itype.get_return_type (), true, null, false);
var temp_ref = get_variable_cexpression (temp_var.name);
len_call.add_argument (temp_ref);
append_array_length (expr, len_call);
- } else if (!deleg.no_array_length) {
+ } else if (get_ccode_array_length (deleg)) {
var temp_var = get_temp_variable (int_type);
var temp_ref = get_variable_cexpression (temp_var.name);
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (deleg.carray_length_parameter_position + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_array_length_pos (deleg) + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
append_array_length (expr, temp_ref);
} else {
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (deleg.cdelegate_target_parameter_position), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_delegate_target_pos (deleg)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
set_delegate_target (expr, temp_ref);
}
/* ensure variable argument list ends with NULL
* except when using printf-style arguments */
if (m == null) {
- in_arg_map.set (get_param_pos (-1, true), new CCodeConstant (Method.DEFAULT_SENTINEL));
- } else if (!m.printf_format && !m.scanf_format && m.sentinel != "") {
- in_arg_map.set (get_param_pos (-1, true), new CCodeConstant (m.sentinel));
+ in_arg_map.set (get_param_pos (-1, true), new CCodeConstant ("NULL"));
+ } else if (!m.printf_format && !m.scanf_format && get_ccode_sentinel (m) != "") {
+ in_arg_map.set (get_param_pos (-1, true), new CCodeConstant (get_ccode_sentinel (m)));
}
}
var d = deleg_type.delegate_symbol;
if (d.has_target) {
CCodeExpression delegate_target_destroy_notify;
- in_arg_map.set (get_param_pos (d.cinstance_parameter_position), get_delegate_target_cexpression (expr.call, out delegate_target_destroy_notify));
- out_arg_map.set (get_param_pos (d.cinstance_parameter_position), get_delegate_target_cexpression (expr.call, out delegate_target_destroy_notify));
+ in_arg_map.set (get_param_pos (get_ccode_instance_pos (d)), get_delegate_target_cexpression (expr.call, out delegate_target_destroy_notify));
+ out_arg_map.set (get_param_pos (get_ccode_instance_pos (d)), get_delegate_target_cexpression (expr.call, out delegate_target_destroy_notify));
}
}
if (ma != null && ma.inner is BaseAccess && sig.is_virtual) {
// normal return value for base access
- } else if (!sig.has_emitter) {
+ } else if (!get_signal_has_emitter (sig)) {
return_result_via_out_param = true;
}
}
var clen = get_array_length_cexpression (ma.inner, 1);
var celems = get_cvalue (ma.inner);
var array_type = (ArrayType) ma.inner.value_type;
- var csizeof = new CCodeIdentifier ("sizeof (%s)".printf (array_type.element_type.get_cname ()));
+ var csizeof = new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (array_type.element_type)));
var cdelta = new CCodeBinaryExpression (CCodeBinaryOperator.MINUS, temp_ref, clen);
var ccheck = new CCodeBinaryExpression (CCodeBinaryOperator.GREATER_THAN, temp_ref, clen);
if (expr.formal_value_type is GenericType && !(expr.value_type is GenericType)) {
var st = expr.formal_value_type.type_parameter.parent_symbol.parent_symbol as Struct;
if (expr.formal_value_type.type_parameter.parent_symbol == garray_type ||
- (st != null && st.get_cname () == "va_list")) {
+ (st != null && get_ccode_name (st) == "va_list")) {
// GArray and va_list don't use pointer-based generics
// above logic copied from visit_expression ()
// TODO avoid code duplication
}
private string generate_enum_tostring_function (Enum en) {
- var to_string_func = "_%s_to_string".printf (en.get_lower_case_cname ());
+ var to_string_func = "_%s_to_string".printf (get_ccode_lower_case_name (en));
if (!add_wrapper (to_string_func)) {
// wrapper already defined
var function = new CCodeFunction (to_string_func, "const char*");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("value", en.get_cname ()));
+ function.add_parameter (new CCodeParameter ("value", get_ccode_name (en)));
// definition
push_context (new EmitContext ());
ccode.open_switch (new CCodeConstant ("value"));
foreach (var enum_value in en.get_values ()) {
- ccode.add_case (new CCodeIdentifier (enum_value.get_cname ()));
- ccode.add_return (new CCodeConstant ("\""+enum_value.get_cname ()+"\""));
+ ccode.add_case (new CCodeIdentifier (get_ccode_name (enum_value)));
+ ccode.add_return (new CCodeConstant ("\""+get_ccode_name (enum_value)+"\""));
}
ccode.close ();
ccode.add_return (new CCodeConstant ("NULL"));
return (method.get_attribute ("NoWrapper") == null);
}
- public override string? get_custom_creturn_type (Method m) {
- return m.custom_return_type_cname;
- }
-
string get_creturn_type (Method m, string default_value) {
- string type = get_custom_creturn_type (m);
+ string type = get_ccode_type (m);
if (type == null) {
return default_value;
}
// structs are returned via out parameter
creturn_type = new VoidType ();
}
- cfunc.return_type = get_creturn_type (m, creturn_type.get_cname ());
+ cfunc.return_type = get_creturn_type (m, get_ccode_name (creturn_type));
generate_type_declaration (m.return_type, decl_space);
if (m.return_type.is_real_non_null_struct_type ()) {
// structs are returned via out parameter
- var cparam = new CCodeParameter ("result", m.return_type.get_cname () + "*");
+ var cparam = new CCodeParameter ("result", get_ccode_name (m.return_type) + "*");
cparam_map.set (get_param_pos (-3), cparam);
if (carg_map != null) {
carg_map.set (get_param_pos (-3), get_result_cexpression ());
}
- } else if (!m.no_array_length && m.return_type is ArrayType) {
+ } else if (get_ccode_array_length (m) && m.return_type is ArrayType) {
// return array length if appropriate
var array_type = (ArrayType) m.return_type;
- var array_length_type = m.array_length_type != null ? m.array_length_type : "int";
+ var array_length_type = get_ccode_array_length_type (m) != null ? get_ccode_array_length_type (m) : "int";
array_length_type += "*";
for (int dim = 1; dim <= array_type.rank; dim++) {
var cparam = new CCodeParameter (get_array_length_cname ("result", dim), array_length_type);
- cparam_map.set (get_param_pos (m.carray_length_parameter_position + 0.01 * dim), cparam);
+ cparam_map.set (get_param_pos (get_ccode_array_length_pos (m) + 0.01 * dim), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (m.carray_length_parameter_position + 0.01 * dim), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_array_length_pos (m) + 0.01 * dim), get_variable_cexpression (cparam.name));
}
}
} else if (m.return_type is DelegateType) {
var d = deleg_type.delegate_symbol;
if (d.has_target) {
var cparam = new CCodeParameter (get_delegate_target_cname ("result"), "void**");
- cparam_map.set (get_param_pos (m.cdelegate_target_parameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (m)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (m.cdelegate_target_parameter_position), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m)), get_variable_cexpression (cparam.name));
}
if (deleg_type.value_owned) {
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname ("result"), "GDestroyNotify*");
- cparam_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), get_variable_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), get_variable_cexpression (cparam.name));
}
}
}
if (m.is_async_callback) {
return;
}
- if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
return;
}
- var function = new CCodeFunction (m.get_cname ());
+ var function = new CCodeFunction (get_ccode_name (m));
if (m.is_private_symbol () && !m.external) {
function.modifiers |= CCodeModifiers.STATIC;
if (m is CreationMethod && cl != null) {
// _construct function
- function = new CCodeFunction (m.get_real_cname ());
+ function = new CCodeFunction (get_ccode_real_name (m));
if (m.is_private_symbol ()) {
function.modifiers |= CCodeModifiers.STATIC;
}
}
- var register_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_register_type".printf (type_symbol.get_lower_case_cname (null))));
+ var register_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_register_type".printf (get_ccode_lower_case_name (type_symbol, null))));
register_call.add_argument (new CCodeIdentifier (module_init_param_name));
ccode.add_expression (register_call);
}
check_type (m.return_type);
+ if (m.get_attribute ("NoArrayLength") != null) {
+ Report.deprecated (m.source_reference, "NoArrayLength attribute is deprecated, use [CCode (array_length = false)] instead.");
+ }
+
if (m is CreationMethod) {
var cl = current_type_symbol as Class;
if (cl != null && !cl.is_compact) {
}
CCodeFunction function;
- function = new CCodeFunction (m.get_real_cname ());
+ function = new CCodeFunction (get_ccode_real_name (m));
if (m.is_inline) {
function.modifiers |= CCodeModifiers.INLINE;
}
} else {
if (m.body != null) {
- function = new CCodeFunction (m.get_real_cname () + "_co", "gboolean");
+ function = new CCodeFunction (get_ccode_real_name (m) + "_co", "gboolean");
// data struct to hold parameters, local variables, and the return value
- function.add_parameter (new CCodeParameter ("_data_", Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data*"));
-
+ function.add_parameter (new CCodeParameter ("_data_", Symbol.lower_case_to_camel_case (get_ccode_const_name (m)) + "Data*"));
function.modifiers |= CCodeModifiers.STATIC;
cfile.add_function_declaration (function);
}
// as closures have block data parameter
if (m.binding == MemberBinding.INSTANCE) {
var cself = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data%d_".printf (block_id)), "self");
- ccode.add_declaration ("%s *".printf (current_type_symbol.get_cname ()), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (current_type_symbol)), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), cself);
}
var self_target_type = new ObjectType (cl);
CCodeExpression cself = get_cvalue_ (transform_value (new GLibValue (base_expression_type, new CCodeIdentifier ("base"), true), self_target_type, m));
- ccode.add_declaration ("%s *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), cself);
} else if (m.binding == MemberBinding.INSTANCE
&& !(m is CreationMethod)) {
} else if (!m.coroutine) {
// declare local variable for out parameter to allow assignment even when caller passes NULL
var vardecl = new CCodeVariableDeclarator.zero (get_variable_cname ("_vala_" + param.name), default_value_for_type (param.variable_type, true));
- ccode.add_declaration (param.variable_type.get_cname (), vardecl);
+ ccode.add_declaration (get_ccode_name (param.variable_type), vardecl);
if (param.variable_type is ArrayType) {
// create variables to store array dimensions
if (!(m.return_type is VoidType) && !m.return_type.is_real_non_null_struct_type () && !m.coroutine) {
var vardecl = new CCodeVariableDeclarator ("result", default_value_for_type (m.return_type, true));
vardecl.init0 = true;
- ccode.add_declaration (m.return_type.get_cname (), vardecl);
+ ccode.add_declaration (get_ccode_name (m.return_type), vardecl);
}
if (m is CreationMethod) {
if (in_gobject_creation_method) {
- ccode.add_declaration ("%s *".printf (((Class) current_type_symbol).get_cname ()), new CCodeVariableDeclarator.zero ("self", new CCodeConstant ("NULL")));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (current_type_symbol)), new CCodeVariableDeclarator.zero ("self", new CCodeConstant ("NULL")));
} else if (is_gtypeinstance_creation_method (m)) {
var cl = (Class) m.parent_symbol;
- ccode.add_declaration (cl.get_cname () + "*", new CCodeVariableDeclarator.zero ("self", new CCodeConstant ("NULL")));
+ ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator.zero ("self", new CCodeConstant ("NULL")));
if (cl.is_fundamental ()) {
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_create_instance"));
ccall.add_argument (new CCodeIdentifier ("object_type"));
- ccode.add_assignment (new CCodeIdentifier ("self"), new CCodeCastExpression (ccall, cl.get_cname () + "*"));
+ ccode.add_assignment (new CCodeIdentifier ("self"), new CCodeCastExpression (ccall, get_ccode_name (cl) + "*"));
/* type, dup func, and destroy func fields for generic types */
foreach (TypeParameter type_param in current_class.get_type_parameters ()) {
}
} else if (current_type_symbol is Class) {
var cl = (Class) m.parent_symbol;
- ccode.add_declaration (cl.get_cname () + "*", new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator ("self"));
if (!((CreationMethod) m).chain_up) {
// TODO implicitly chain up to base class as in add_object_creation
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_new0"));
- ccall.add_argument (new CCodeIdentifier (cl.get_cname ()));
+ ccall.add_argument (new CCodeIdentifier (get_ccode_name (cl)));
ccode.add_assignment (new CCodeIdentifier ("self"), ccall);
}
if (cl.base_class == null) {
// derived compact classes do not have fields
- var cinitcall = new CCodeFunctionCall (new CCodeIdentifier ("%s_instance_init".printf (cl.get_lower_case_cname (null))));
+ var cinitcall = new CCodeFunctionCall (new CCodeIdentifier ("%s_instance_init".printf (get_ccode_lower_case_name (cl, null))));
cinitcall.add_argument (new CCodeIdentifier ("self"));
ccode.add_expression (cinitcall);
}
var czero = new CCodeFunctionCall (new CCodeIdentifier ("memset"));
czero.add_argument (new CCodeIdentifier ("self"));
czero.add_argument (new CCodeConstant ("0"));
- czero.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (st.get_cname ())));
+ czero.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (st))));
ccode.add_expression (czero);
}
}
if (current_type_symbol is Class) {
CCodeExpression cresult = new CCodeIdentifier ("self");
- if (get_custom_creturn_type (m) != null) {
- cresult = new CCodeCastExpression (cresult, get_custom_creturn_type (m));
+ if (get_ccode_type (m) != null) {
+ cresult = new CCodeCastExpression (cresult, get_ccode_type (m));
}
ccode.add_return (cresult);
var type_name_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_name"));
type_name_call.add_argument (type_from_instance_call);
- var error_string = "\"Type `%%s' does not implement abstract method `%s'\"".printf (m.get_cname ());
+ var error_string = "\"Type `%%s' does not implement abstract method `%s'\"".printf (get_ccode_name (m));
var cerrorcall = new CCodeFunctionCall (new CCodeIdentifier ("g_critical"));
cerrorcall.add_argument (new CCodeConstant (error_string));
public virtual CCodeParameter generate_parameter (Parameter param, CCodeFile decl_space, Map<int,CCodeParameter> cparam_map, Map<int,CCodeExpression>? carg_map) {
CCodeParameter cparam;
if (!param.ellipsis) {
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
generate_type_declaration (param.variable_type, decl_space);
cparam = new CCodeParameter.with_ellipsis ();
}
- cparam_map.set (get_param_pos (param.cparameter_position, param.ellipsis), cparam);
+ cparam_map.set (get_param_pos (get_ccode_pos (param), param.ellipsis), cparam);
if (carg_map != null && !param.ellipsis) {
- carg_map.set (get_param_pos (param.cparameter_position, param.ellipsis), get_variable_cexpression (param.name));
+ carg_map.set (get_param_pos (get_ccode_pos (param), param.ellipsis), get_variable_cexpression (param.name));
}
return cparam;
var closure_block = current_closure_block;
int block_id = get_block_id (closure_block);
var instance_param = new CCodeParameter ("_data%d_".printf (block_id), "Block%dData*".printf (block_id));
- cparam_map.set (get_param_pos (m.cinstance_parameter_position), instance_param);
+ cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), instance_param);
} else if (m.parent_symbol is Class && m is CreationMethod) {
var cl = (Class) m.parent_symbol;
if (!cl.is_compact && vcall == null) {
- cparam_map.set (get_param_pos (m.cinstance_parameter_position), new CCodeParameter ("object_type", "GType"));
+ cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), new CCodeParameter ("object_type", "GType"));
}
} else if (m.binding == MemberBinding.INSTANCE || (m.parent_symbol is Struct && m is CreationMethod)) {
TypeSymbol parent_type = find_parent_type (m);
CCodeParameter instance_param = null;
if (m.base_interface_method != null && !m.is_abstract && !m.is_virtual) {
var base_type = new ObjectType ((Interface) m.base_interface_method.parent_symbol);
- instance_param = new CCodeParameter ("base", base_type.get_cname ());
+ instance_param = new CCodeParameter ("base", get_ccode_name (base_type));
} else if (m.overrides) {
var base_type = new ObjectType ((Class) m.base_method.parent_symbol);
- instance_param = new CCodeParameter ("base", base_type.get_cname ());
+ instance_param = new CCodeParameter ("base", get_ccode_name (base_type));
} else {
if (m.parent_symbol is Struct && !((Struct) m.parent_symbol).is_simple_type ()) {
- instance_param = new CCodeParameter ("*self", this_type.get_cname ());
+ instance_param = new CCodeParameter ("*self", get_ccode_name (this_type));
} else {
- instance_param = new CCodeParameter ("self", this_type.get_cname ());
+ instance_param = new CCodeParameter ("self", get_ccode_name (this_type));
}
}
- cparam_map.set (get_param_pos (m.cinstance_parameter_position), instance_param);
+ cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), instance_param);
} else if (m.binding == MemberBinding.CLASS) {
TypeSymbol parent_type = find_parent_type (m);
DataType this_type;
this_type = new ClassType ((Class) parent_type);
- var class_param = new CCodeParameter ("klass", this_type.get_cname ());
- cparam_map.set (get_param_pos (m.cinstance_parameter_position), class_param);
+ var class_param = new CCodeParameter ("klass", get_ccode_name (this_type));
+ cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), class_param);
}
if (is_gtypeinstance_creation_method (m)) {
public void generate_vfunc (Method m, DataType return_type, Map<int,CCodeParameter> cparam_map, Map<int,CCodeExpression> carg_map, string suffix = "", int direction = 3) {
push_context (new EmitContext ());
- string cname = m.get_cname ();
+ string cname = get_ccode_name (m);
if (suffix == "_finish" && cname.has_suffix ("_async")) {
cname = cname.substring (0, cname.length - "_async".length);
}
if (m.parent_symbol is Interface) {
var iface = (Interface) m.parent_symbol;
- vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_INTERFACE".printf (iface.get_upper_case_cname (null))));
+ vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_INTERFACE".printf (get_ccode_upper_case_name (iface))));
} else {
var cl = (Class) m.parent_symbol;
- vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (cl.get_upper_case_cname (null))));
+ vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (cl))));
}
vcast.add_argument (new CCodeIdentifier ("self"));
- cname = m.vfunc_name;
+ cname = get_ccode_vfunc_name (m);
if (suffix == "_finish" && cname.has_suffix ("_async")) {
cname = cname.substring (0, cname.length - "_async".length);
}
var vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, cname + suffix));
- carg_map.set (get_param_pos (m.cinstance_parameter_position), new CCodeIdentifier ("self"));
+ carg_map.set (get_param_pos (get_ccode_instance_pos (m)), new CCodeIdentifier ("self"));
generate_cparameters (m, cfile, cparam_map, vfunc, null, carg_map, vcall, direction);
ccode.add_return (vcall);
} else {
/* store method return value for postconditions */
- ccode.add_declaration (get_creturn_type (m, return_type.get_cname ()), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_creturn_type (m, get_ccode_name (return_type)), new CCodeVariableDeclarator ("result"));
ccode.add_assignment (new CCodeIdentifier ("result"), vcall);
}
// do not generate _new functions for creation methods of abstract classes
if (current_type_symbol is Class && !current_class.is_compact && !current_class.is_abstract) {
- var vfunc = new CCodeFunction (m.get_cname ());
+ var vfunc = new CCodeFunction (get_ccode_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
var carg_map = new HashMap<int,CCodeExpression> (direct_hash, direct_equal);
push_function (vfunc);
- var vcall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
- vcall.add_argument (new CCodeIdentifier (current_class.get_type_id ()));
+ var vcall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
+ vcall.add_argument (new CCodeIdentifier (get_ccode_type_id (current_class)));
generate_cparameters (m, cfile, cparam_map, vfunc, null, carg_map, vcall);
ccode.add_return (vcall);
public abstract class Vala.CCodeStructModule : CCodeBaseModule {
public override void generate_struct_declaration (Struct st, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, get_ccode_name (st))) {
return;
}
if (st.is_boolean_type ()) {
// typedef for boolean types
decl_space.add_include ("stdbool.h");
- st.set_cname ("bool");
return;
} else if (st.is_integer_type ()) {
// typedef for integral types
decl_space.add_include ("stdint.h");
- st.set_cname ("%sint%d_t".printf (st.signed ? "" : "u", st.width));
- return;
- } else if (st.is_floating_type ()) {
- // typedef for floating types
- st.set_cname (st.width == 64 ? "double" : "float");
return;
}
if (context.profile == Profile.GOBJECT) {
- if (st.has_type_id) {
+ if (get_ccode_has_type_id (st)) {
decl_space.add_type_declaration (new CCodeNewline ());
- var macro = "(%s_get_type ())".printf (st.get_lower_case_cname (null));
- decl_space.add_type_declaration (new CCodeMacroReplacement (st.get_type_id (), macro));
+ var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (st, null));
+ decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (st), macro));
var type_fun = new StructRegisterFunction (st, context);
type_fun.init_from_type (false, true);
}
}
- var instance_struct = new CCodeStruct ("_%s".printf (st.get_cname ()));
+ var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st)));
instance_struct.deprecated = st.deprecated;
foreach (Field f in st.get_fields ()) {
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
if (f.binding == MemberBinding.INSTANCE) {
generate_type_declaration (f.variable_type, decl_space);
- instance_struct.add_field (field_ctype, f.get_cname () + f.variable_type.get_cdeclarator_suffix (), f.deprecated ? " G_GNUC_DEPRECATED" : null);
- if (f.variable_type is ArrayType && !f.no_array_length) {
+ instance_struct.add_field (field_ctype, get_ccode_name (f) + f.variable_type.get_cdeclarator_suffix (), f.deprecated ? " G_GNUC_DEPRECATED" : null);
+ if (f.variable_type is ArrayType && get_ccode_array_length (f)) {
// create fields to store array dimensions
var array_type = (ArrayType) f.variable_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
string length_cname;
- if (f.has_array_length_cname) {
- length_cname = f.get_array_length_cname ();
+ if (get_ccode_array_length_name (f) != null) {
+ length_cname = get_ccode_array_length_name (f);
} else {
length_cname = get_array_length_cname (f.name, dim);
}
- instance_struct.add_field (len_type.get_cname (), length_cname);
+ instance_struct.add_field (get_ccode_name (len_type), length_cname);
}
if (array_type.rank == 1 && f.is_internal_symbol ()) {
- instance_struct.add_field (len_type.get_cname (), get_array_size_cname (f.name));
+ instance_struct.add_field (get_ccode_name (len_type), get_array_size_cname (f.name));
}
}
} else if (f.variable_type is DelegateType) {
}
if (st.base_struct == null) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (st.get_cname ()), new CCodeVariableDeclarator (st.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (st)), new CCodeVariableDeclarator (get_ccode_name (st))));
decl_space.add_type_definition (instance_struct);
} else {
- decl_space.add_type_declaration (new CCodeTypeDefinition (st.base_struct.get_cname (), new CCodeVariableDeclarator (st.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition (get_ccode_name (st.base_struct), new CCodeVariableDeclarator (get_ccode_name (st))));
}
- var function = new CCodeFunction (st.get_dup_function (), st.get_cname () + "*");
+ var function = new CCodeFunction (get_ccode_dup_function (st), get_ccode_name (st) + "*");
if (st.is_private_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", "const " + st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", "const " + get_ccode_name (st) + "*"));
decl_space.add_function_declaration (function);
- function = new CCodeFunction (st.get_free_function (), "void");
+ function = new CCodeFunction (get_ccode_free_function (st), "void");
if (st.is_private_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (st) + "*"));
decl_space.add_function_declaration (function);
if (st.is_disposable ()) {
- function = new CCodeFunction (st.get_copy_function (), "void");
+ function = new CCodeFunction (get_ccode_copy_function (st), "void");
if (st.is_private_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", "const " + st.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("dest", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", "const " + get_ccode_name (st) + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (st) + "*"));
decl_space.add_function_declaration (function);
- function = new CCodeFunction (st.get_destroy_function (), "void");
+ function = new CCodeFunction (get_ccode_destroy_function (st), "void");
if (st.is_private_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (st) + "*"));
decl_space.add_function_declaration (function);
}
}
}
void add_struct_dup_function (Struct st) {
- var function = new CCodeFunction (st.get_dup_function (), st.get_cname () + "*");
+ var function = new CCodeFunction (get_ccode_dup_function (st), get_ccode_name (st) + "*");
if (st.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", "const " + st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", "const " + get_ccode_name (st) + "*"));
push_function (function);
- ccode.add_declaration (st.get_cname () + "*", new CCodeVariableDeclarator ("dup"));
+ ccode.add_declaration (get_ccode_name (st) + "*", new CCodeVariableDeclarator ("dup"));
var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
- creation_call.add_argument (new CCodeConstant (st.get_cname ()));
+ creation_call.add_argument (new CCodeConstant (get_ccode_name (st)));
creation_call.add_argument (new CCodeConstant ("1"));
ccode.add_assignment (new CCodeIdentifier ("dup"), creation_call);
if (st.is_disposable ()) {
- var copy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_copy_function ()));
+ var copy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_copy_function (st)));
copy_call.add_argument (new CCodeIdentifier ("self"));
copy_call.add_argument (new CCodeIdentifier ("dup"));
ccode.add_expression (copy_call);
cfile.add_include ("string.h");
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeConstant (st.get_cname ()));
+ sizeof_call.add_argument (new CCodeConstant (get_ccode_name (st)));
var copy_call = new CCodeFunctionCall (new CCodeIdentifier ("memcpy"));
copy_call.add_argument (new CCodeIdentifier ("dup"));
}
void add_struct_free_function (Struct st) {
- var function = new CCodeFunction (st.get_free_function (), "void");
+ var function = new CCodeFunction (get_ccode_free_function (st), "void");
if (st.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (st) + "*"));
push_function (function);
if (st.is_disposable ()) {
- var destroy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_destroy_function ()));
+ var destroy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_destroy_function (st)));
destroy_call.add_argument (new CCodeIdentifier ("self"));
ccode.add_expression (destroy_call);
}
}
void add_struct_copy_function (Struct st) {
- var function = new CCodeFunction (st.get_copy_function (), "void");
+ var function = new CCodeFunction (get_ccode_copy_function (st), "void");
if (st.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", "const " + st.get_cname () + "*"));
- function.add_parameter (new CCodeParameter ("dest", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", "const " + get_ccode_name (st) + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (st) + "*"));
push_function (function);
void begin_struct_destroy_function (Struct st) {
push_context (instance_finalize_context);
- var function = new CCodeFunction (st.get_destroy_function (), "void");
+ var function = new CCodeFunction (get_ccode_destroy_function (st), "void");
if (st.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (st) + "*"));
push_function (function);
}
public override string get_type_struct_name () {
- return "%sClass".printf (class_reference.get_cname ());
+ return "%sClass".printf (CCodeBaseModule.get_ccode_name (class_reference));
}
public override string get_base_init_func_name () {
if (class_reference.class_constructor != null || (!context.require_glib_version (2, 24) && class_reference.has_class_private_fields)) {
- return "%s_base_init".printf (class_reference.get_lower_case_cname (null));
+ return "%s_base_init".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null));
} else {
return "NULL";
}
public override string get_class_finalize_func_name () {
if (class_reference.static_destructor != null) {
- return "%s_class_finalize".printf (class_reference.get_lower_case_cname (null));
+ return "%s_class_finalize".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null));
} else {
return "NULL";
}
public override string get_base_finalize_func_name () {
if (class_reference.class_destructor != null || (!context.require_glib_version (2, 24) && class_reference.has_class_private_fields)) {
- return "%s_base_finalize".printf (class_reference.get_lower_case_cname (null));
+ return "%s_base_finalize".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null));
} else {
return "NULL";
}
}
public override string get_class_init_func_name () {
- return "%s_class_init".printf (class_reference.get_lower_case_cname (null));
+ return "%s_class_init".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null));
}
public override string get_instance_struct_size () {
- return "sizeof (%s)".printf (class_reference.get_cname ());
+ return "sizeof (%s)".printf (CCodeBaseModule.get_ccode_name (class_reference));
}
public override string get_instance_init_func_name () {
- return "%s_instance_init".printf (class_reference.get_lower_case_cname (null));
+ return "%s_instance_init".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null));
}
public override string get_parent_type_name () {
- return class_reference.base_class.get_type_id ();
+ return CCodeBaseModule.get_ccode_type_id (class_reference.base_class);
}
public override string get_type_flags () {
public override string? get_gtype_value_table_init_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_init".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_init".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
public override string? get_gtype_value_table_free_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_free_value".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_free_value".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
public override string? get_gtype_value_table_copy_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_copy_value".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_copy_value".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
public override string? get_gtype_value_table_peek_pointer_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_peek_pointer".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_peek_pointer".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
public override string? get_gtype_value_table_collect_value_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_collect_value".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_collect_value".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
public override string? get_gtype_value_table_lcopy_value_function_name () {
bool is_fundamental = !class_reference.is_compact && class_reference.base_class == null;
if ( is_fundamental )
- return "%s_lcopy_value".printf (class_reference.get_lower_case_cname ("value_"));
+ return "%s_lcopy_value".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, "value_"));
return null;
}
var iface = (Interface) base_type.data_type;
- var iface_info_name = "%s_info".printf (iface.get_lower_case_cname (null));
+ var iface_info_name = "%s_info".printf (CCodeBaseModule.get_ccode_lower_case_name (iface, null));
var ctypedecl = new CCodeDeclaration ("const GInterfaceInfo");
ctypedecl.modifiers = CCodeModifiers.STATIC;
- ctypedecl.add_declarator (new CCodeVariableDeclarator (iface_info_name, new CCodeConstant ("{ (GInterfaceInitFunc) %s_%s_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}".printf (class_reference.get_lower_case_cname (null), iface.get_lower_case_cname (null)))));
+ ctypedecl.add_declarator (new CCodeVariableDeclarator (iface_info_name, new CCodeConstant ("{ (GInterfaceInitFunc) %s_%s_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference), CCodeBaseModule.get_ccode_lower_case_name (iface)))));
frag.append (ctypedecl);
}
var iface = (Interface) base_type.data_type;
- var iface_info_name = "%s_info".printf (iface.get_lower_case_cname (null));
+ var iface_info_name = "%s_info".printf (CCodeBaseModule.get_ccode_lower_case_name (iface, null));
if (!plugin) {
var reg_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_add_interface_static"));
- reg_call.add_argument (new CCodeIdentifier ("%s_type_id".printf (class_reference.get_lower_case_cname (null))));
- reg_call.add_argument (new CCodeIdentifier (iface.get_type_id ()));
+ reg_call.add_argument (new CCodeIdentifier ("%s_type_id".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null))));
+ reg_call.add_argument (new CCodeIdentifier (CCodeBaseModule.get_ccode_type_id (iface)));
reg_call.add_argument (new CCodeIdentifier ("&%s".printf (iface_info_name)));
block.add_statement (new CCodeExpressionStatement (reg_call));
} else {
var reg_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_module_add_interface"));
reg_call.add_argument (new CCodeIdentifier ("module"));
- reg_call.add_argument (new CCodeIdentifier ("%s_type_id".printf (class_reference.get_lower_case_cname (null))));
- reg_call.add_argument (new CCodeIdentifier (iface.get_type_id ()));
+ reg_call.add_argument (new CCodeIdentifier ("%s_type_id".printf (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null))));
+ reg_call.add_argument (new CCodeIdentifier (CCodeBaseModule.get_ccode_type_id (iface)));
reg_call.add_argument (new CCodeIdentifier ("&%s".printf (iface_info_name)));
block.add_statement (new CCodeExpressionStatement (reg_call));
}
public override DataType copy () {
return new CType (ctype_name);
}
-
- public override string? get_cname () {
- return ctype_name;
- }
}
var array_type = (ArrayType) expr.container.value_type;
var array = new CCodeFunctionCall (new CCodeIdentifier ("dova_array"));
- array.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeCastExpression (new CCodeMemberAccess (ccontainer, "data"), array_type.element_type.get_cname () + "*"), cstart));
+ array.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeCastExpression (new CCodeMemberAccess (ccontainer, "data"), get_ccode_name (array_type.element_type) + "*"), cstart));
array.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.MINUS, cstop, cstart));
set_cvalue (expr, array);
// it is necessary to use memcpy for fixed-length (stack-allocated) arrays
// simple assignments do not work in C
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
var size = new CCodeBinaryExpression (CCodeBinaryOperator.MUL, new CCodeConstant ("%d".printf (array_type.length)), sizeof_call);
var ccopy = new CCodeFunctionCall (new CCodeIdentifier ("memcpy"));
ccopy.add_argument (lhs);
}
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 ()) {
+ foreach (string header_filename in CCodeBaseModule.get_ccode_header_filenames (sym).split (",")) {
decl_space.add_include (header_filename, !sym.external_package);
}
// declaration complete
}
public void generate_enum_declaration (Enum en, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, en, en.get_cname ())) {
+ if (add_symbol_declaration (decl_space, en, get_ccode_name (en))) {
return;
}
- var cenum = new CCodeEnum (en.get_cname ());
+ var cenum = new CCodeEnum (get_ccode_name (en));
foreach (EnumValue ev in en.get_values ()) {
if (ev.value == null) {
- cenum.add_value (new CCodeEnumValue (ev.get_cname ()));
+ cenum.add_value (new CCodeEnumValue (get_ccode_name (ev)));
} else {
ev.value.emit (this);
- cenum.add_value (new CCodeEnumValue (ev.get_cname (), get_cvalue (ev.value)));
+ cenum.add_value (new CCodeEnumValue (get_ccode_name (ev), get_cvalue (ev.value)));
}
}
}
public void generate_constant_declaration (Constant c, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, c, c.get_cname ())) {
+ if (add_symbol_declaration (decl_space, c, get_ccode_name (c))) {
return;
}
c.value.emit (this);
if (c.value is InitializerList) {
- var cdecl = new CCodeDeclaration (c.type_reference.get_const_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_const_name (c.type_reference));
var arr = "";
if (c.type_reference is ArrayType) {
arr = "[]";
}
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), get_cvalue (c.value)));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (get_ccode_name (c), arr), get_cvalue (c.value)));
cdecl.modifiers = CCodeModifiers.STATIC;
decl_space.add_constant_declaration (cdecl);
} else {
- var cdefine = new CCodeMacroReplacement.with_expression (c.get_cname (), get_cvalue (c.value));
+ var cdefine = new CCodeMacroReplacement.with_expression (get_ccode_name (c), get_cvalue (c.value));
decl_space.add_type_member_declaration (cdefine);
}
}
}
public void generate_field_declaration (Field f, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, f, f.get_cname ())) {
+ if (add_symbol_declaration (decl_space, f, get_ccode_name (f))) {
return;
}
generate_type_declaration (f.variable_type, decl_space);
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
var cdecl = new CCodeDeclaration (field_ctype);
- cdecl.add_declarator (new CCodeVariableDeclarator (f.get_cname ()));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_ccode_name (f)));
if (f.is_internal_symbol ()) {
cdecl.modifiers = CCodeModifiers.STATIC;
} else {
generate_field_declaration (f, header_file);
}
- var var_decl = new CCodeVariableDeclarator (f.get_cname ());
+ var var_decl = new CCodeVariableDeclarator (get_ccode_name (f));
var_decl.initializer = default_value_for_type (f.variable_type, true);
if (f.initializer != null) {
static_fields.add (f);
}
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
var param_type = param.variable_type.copy ();
param_type.value_owned = true;
- data.add_field (param_type.get_cname (), get_variable_cname (param.name));
+ data.add_field (get_ccode_name (param_type), get_variable_cname (param.name));
// create copy if necessary as captured variables may need to be kept alive
CCodeExpression cparam = get_variable_cexpression (param.name);
free_block.add_statement (new CCodeExpressionStatement (unref_call));
} else if ((current_method != null && current_method.binding == MemberBinding.INSTANCE) ||
(current_property_accessor != null && current_property_accessor.prop.binding == MemberBinding.INSTANCE)) {
- data.add_field ("%s *".printf (current_class.get_cname ()), "this");
+ data.add_field ("%s *".printf (get_ccode_name (current_class)), "this");
var ma = new MemberAccess.simple ("this");
ma.symbol_reference = current_class;
if (local.captured) {
generate_type_declaration (local.variable_type, cfile);
- data.add_field (local.variable_type.get_cname (), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
+ data.add_field (get_ccode_name (local.variable_type), get_variable_cname (local.name) + local.variable_type.get_cdeclarator_suffix ());
}
}
// free in reverse order
} else {
var cvar = new CCodeVariableDeclarator (get_variable_cname (local.name), rhs, local.variable_type.get_cdeclarator_suffix ());
- var cdecl = new CCodeDeclaration (local.variable_type.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (local.variable_type));
cdecl.add_declarator (cvar);
ccode.add_statement (cdecl);
public CCodeExpression get_type_private_from_type (ObjectTypeSymbol type_symbol, CCodeExpression type_expression) {
if (type_symbol is Class) {
// class
- return new CCodeCastExpression (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeCastExpression (type_expression, "char *"), new CCodeIdentifier ("_%s_type_offset".printf (((Class) type_symbol).get_lower_case_cname ()))), "%sTypePrivate *".printf (((Class) type_symbol).get_cname ()));
+ return new CCodeCastExpression (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeCastExpression (type_expression, "char *"), new CCodeIdentifier ("_%s_type_offset".printf (CCodeBaseModule.get_ccode_lower_case_name (type_symbol)))), "%sTypePrivate *".printf (get_ccode_name (type_symbol)));
} else {
// interface
var get_interface = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_get_interface"));
get_interface.add_argument (type_expression);
- get_interface.add_argument (new CCodeIdentifier ("%s_type".printf (((Interface) type_symbol).get_lower_case_cname ())));
- return new CCodeCastExpression (get_interface, "%sTypePrivate *".printf (((Interface) type_symbol).get_cname ()));
+ get_interface.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (type_symbol))));
+ return new CCodeCastExpression (get_interface, "%sTypePrivate *".printf (CCodeBaseModule.get_ccode_name (type_symbol)));
}
}
return new CCodeIdentifier (var_name);
}
} else {
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (type.data_type.get_lower_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (CCodeBaseModule.get_ccode_lower_case_name (type.data_type))));
var object_type_symbol = type.data_type as ObjectTypeSymbol;
if (object_type_symbol != null) {
for (int i = 0; i < object_type_symbol.get_type_parameters ().size; i++) {
public virtual CCodeExpression? get_dup_func_expression (DataType type, SourceReference? source_reference, bool is_chainup = false) {
if (type.data_type != null) {
string dup_function = "";
- if (type.data_type.is_reference_counting ()) {
- dup_function = type.data_type.get_ref_function ();
+ if (is_reference_counting (type.data_type)) {
+ dup_function = get_ccode_ref_function (type.data_type);
} else if (type is ValueType) {
- dup_function = type.data_type.get_dup_function ();
+ dup_function = get_ccode_dup_function (type.data_type);
if (dup_function == null) {
dup_function = "";
}
if (type.data_type != null) {
string unref_function;
if (type is ReferenceType) {
- if (type.data_type.is_reference_counting ()) {
- unref_function = type.data_type.get_unref_function ();
+ if (is_reference_counting (type.data_type)) {
+ unref_function = get_ccode_unref_function ((ObjectTypeSymbol) type.data_type);
} else {
- unref_function = type.data_type.get_free_function ();
+ unref_function = get_ccode_free_function (type.data_type);
}
} else {
if (type.nullable) {
- unref_function = type.data_type.get_free_function ();
+ unref_function = get_ccode_free_function (type.data_type);
if (unref_function == null) {
unref_function = "free";
}
} else {
var st = (Struct) type.data_type;
- unref_function = st.get_copy_function ();
+ unref_function = get_ccode_copy_function (st);
}
}
if (unref_function == null) {
}
public void emit_temp_var (LocalVariable local) {
- var cdecl = new CCodeDeclaration (local.variable_type.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (local.variable_type));
var vardecl = new CCodeVariableDeclarator (local.name, null, local.variable_type.get_cdeclarator_suffix ());
cdecl.add_declarator (vardecl);
public override void visit_base_access (BaseAccess expr) {
generate_type_declaration (expr.value_type, cfile);
- set_cvalue (expr, new CCodeCastExpression (new CCodeIdentifier ("this"), expr.value_type.get_cname ()));
+ set_cvalue (expr, new CCodeCastExpression (new CCodeIdentifier ("this"), get_ccode_name (expr.value_type)));
}
public override void visit_postfix_expression (PostfixExpression expr) {
}
var cl = type.data_type as Class;
- if (cl != null && cl.is_reference_counting ()
- && cl.get_ref_function () == "") {
+ if (cl != null && is_reference_counting (cl)
+ && get_ccode_ref_function (cl) == "") {
// empty ref_function => no ref necessary
return false;
}
}
var cl = type.data_type as Class;
- if (cl != null && cl.is_reference_counting ()
- && cl.get_unref_function () == "") {
+ if (cl != null && is_reference_counting (cl)
+ && get_ccode_unref_function (cl) == "") {
// empty unref_function => no unref necessary
return false;
}
bool is_ref_function_void (DataType type) {
var cl = type.data_type as Class;
- if (cl != null && cl.ref_function_void) {
+ if (cl != null && get_ccode_ref_function_void (cl)) {
return true;
} else {
return false;
var vt = (ValueType) expression_type;
var st = (Struct) vt.type_symbol;
- var copy_call = new CCodeFunctionCall (new CCodeIdentifier (st.get_copy_function ()));
+ var copy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_copy_function (st)));
copy_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, ctemp));
copy_call.add_argument (new CCodeConstant ("0"));
copy_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, cexpr));
}
public virtual void generate_class_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, get_ccode_name (cl))) {
return;
}
}
var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("memset"));
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
creation_call.add_argument (new CCodeConstant ("0"));
- creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (expr.type_reference.get_cname ())));
+ creation_call.add_argument (new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (expr.type_reference))));
creation_expr = creation_call;
}
var cl = expr.type_reference.data_type as Class;
- if (!m.has_new_function) {
+ if (!CCodeBaseModule.get_ccode_has_new_function (m)) {
// use construct function directly
- creation_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
- creation_call.add_argument (new CCodeIdentifier (cl.get_type_id ()));
+ creation_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
+ creation_call.add_argument (new CCodeIdentifier (CCodeBaseModule.get_ccode_type_id (cl)));
} else {
- creation_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
+ creation_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (m)));
}
- if (struct_by_ref && !(m.cinstance_parameter_position < 0)) {
+ if (struct_by_ref && !(get_ccode_instance_pos (m) < 0)) {
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
}
i++;
}
- if (struct_by_ref && m.cinstance_parameter_position < 0) {
+ if (struct_by_ref && get_ccode_instance_pos (m) < 0) {
// instance parameter is at the end in a struct creation method
creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
}
if (ellipsis) {
/* ensure variable argument list ends with NULL
* except when using printf-style arguments */
- if (!m.printf_format && !m.scanf_format && m.sentinel != "") {
- creation_call.add_argument (new CCodeConstant (m.sentinel));
+ if (!m.printf_format && !m.scanf_format && get_ccode_sentinel (m) != "") {
+ creation_call.add_argument (new CCodeConstant (get_ccode_sentinel (m)));
}
}
// cast the return value of the creation method back to the intended type if
// it requested a special C return type
if (get_custom_creturn_type (m) != null) {
- creation_expr = new CCodeCastExpression (creation_expr, expr.type_reference.get_cname ());
+ creation_expr = new CCodeCastExpression (creation_expr, get_ccode_name (expr.type_reference));
}
} else {
assert (false);
var typed_inst = transform_expression (instance, expr.type_reference, instance_target_type);
CCodeExpression lhs;
if (expr.type_reference.data_type is Struct) {
- lhs = new CCodeMemberAccess (typed_inst, f.get_cname ());
+ lhs = new CCodeMemberAccess (typed_inst, get_ccode_name (f));
} else {
- lhs = new CCodeMemberAccess.pointer (typed_inst, f.get_cname ());
+ lhs = new CCodeMemberAccess.pointer (typed_inst, get_ccode_name (f));
}
ccode.add_assignment (lhs, get_cvalue (init.initializer));
} else if (init.symbol_reference is Property) {
public override void visit_sizeof_expression (SizeofExpression expr) {
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (expr.type_reference.get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (expr.type_reference)));
set_cvalue (expr, csizeof);
}
var ctemp = get_variable_cexpression (temp_decl.name);
var cinit = new CCodeAssignment (ctemp, get_cvalue (expr.inner));
var ccheck = create_type_check (ctemp, expr.type_reference);
- var ccast = new CCodeCastExpression (ctemp, expr.type_reference.get_cname ());
+ var ccast = new CCodeCastExpression (ctemp, get_ccode_name (expr.type_reference));
var cnull = new CCodeConstant ("NULL");
ccomma.append_expression (cinit);
var ccomma = new CCodeCommaExpression ();
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (expr.type_reference.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (expr.type_reference)));
var to_any = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_value_from_any"));
to_any.add_argument (get_type_id_expression (expr.type_reference));
if (expr.inner.value_type is GenericType && !(expr.type_reference is GenericType)) {
// generic types use an extra pointer, dereference that pointer
- set_cvalue (expr, new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeCastExpression (get_cvalue (expr.inner), expr.type_reference.get_cname () + "*")));
+ set_cvalue (expr, new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeCastExpression (get_cvalue (expr.inner), get_ccode_name (expr.type_reference) + "*")));
} else {
- set_cvalue (expr, new CCodeCastExpression (get_cvalue (expr.inner), expr.type_reference.get_cname ()));
+ set_cvalue (expr, new CCodeCastExpression (get_cvalue (expr.inner), get_ccode_name (expr.type_reference)));
}
}
}
public override void visit_lambda_expression (LambdaExpression l) {
- // use instance position from delegate
- var dt = (DelegateType) l.target_type;
- l.method.cinstance_parameter_position = dt.delegate_symbol.cinstance_parameter_position;
-
l.accept_children (this);
- set_cvalue (l, new CCodeIdentifier (l.method.get_cname ()));
+ set_cvalue (l, new CCodeIdentifier (get_ccode_name (l.method)));
}
// manage memory and implicit casts
foreach (Parameter param in d.get_parameters ()) {
method_param_iter.next ();
var method_param = method_param_iter.get ();
- string ctype = param.variable_type.get_cname ();
+ string ctype = get_ccode_name (param.variable_type);
if (param.variable_type is GenericType && !(method_param.variable_type is GenericType)) {
- ctype = method_param.variable_type.get_cname () + "*";
+ ctype = get_ccode_name (method_param.variable_type) + "*";
call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier (param.name)));
} else if (!(param.variable_type is GenericType) && method_param.variable_type is GenericType) {
call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (param.name)));
} else {
var method_return_type = method_type.method_symbol.return_type;
if (d.return_type is GenericType && !(method_return_type is GenericType)) {
- wrapper.add_parameter (new CCodeParameter ("result", method_return_type.get_cname () + "*"));
+ wrapper.add_parameter (new CCodeParameter ("result", get_ccode_name (method_return_type) + "*"));
wrapper.block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("result")), call)));
} else if (!(d.return_type is GenericType) && method_return_type is GenericType) {
- wrapper.return_type = d.return_type.get_cname ();
- var cdecl = new CCodeDeclaration (d.return_type.get_cname ());
+ wrapper.return_type = get_ccode_name (d.return_type);
+ var cdecl = new CCodeDeclaration (get_ccode_name (d.return_type));
cdecl.add_declarator (new CCodeVariableDeclarator ("result"));
call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("result")));
wrapper.block.add_statement (new CCodeExpressionStatement (call));
wrapper.add_parameter (new CCodeParameter ("result", "void *"));
wrapper.block.add_statement (new CCodeExpressionStatement (call));
} else {
- wrapper.return_type = d.return_type.get_cname ();
+ wrapper.return_type = get_ccode_name (d.return_type);
wrapper.block.add_statement (new CCodeReturnStatement (call));
}
}
cfile.add_function (wrapper);
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_new".printf (deleg_type.delegate_symbol.get_lower_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_new".printf (get_ccode_lower_case_name (deleg_type.delegate_symbol))));
ccall.add_argument (delegate_target);
ccall.add_argument (new CCodeIdentifier (wrapper_name));
return ccall;
if (context.checking && (iface != null || (cl != null && !cl.is_compact))) {
// checked cast for strict subtypes of GTypeInstance
return generate_instance_cast (cexpr, target_type.data_type);
- } else if (target_type.data_type != null && expression_type.get_cname () != target_type.get_cname ()) {
+ } else if (target_type.data_type != null && get_ccode_name (expression_type) != get_ccode_name (target_type)) {
var st = target_type.data_type as Struct;
if (target_type.data_type.is_reference_type () || (st != null && st.is_simple_type ())) {
// don't cast non-simple structs
- return new CCodeCastExpression (cexpr, target_type.get_cname ());
+ return new CCodeCastExpression (cexpr, get_ccode_name (target_type));
} else {
return cexpr;
}
}
generate_property_accessor_declaration (base_property.set_accessor, cfile);
- set_func = base_property.set_accessor.get_cname ();
+ set_func = get_ccode_name (base_property.set_accessor);
if (!prop.external && prop.external_package) {
// internal VAPI properties
|| type.nullable
|| type is PointerType || type is DelegateType) {
return new CCodeConstant ("NULL");
- } else if (type.data_type != null && type.data_type.get_default_value () != null) {
- return new CCodeConstant (type.data_type.get_default_value ());
+ } else if (type.data_type != null && get_ccode_default_value (type.data_type) != "") {
+ return new CCodeConstant (get_ccode_default_value (type.data_type));
}
return null;
}
return get_cvalue (node);
}
+ public string get_ccode_name (CodeNode node) {
+ return CCodeBaseModule.get_ccode_name (node);
+ }
+
+ public string get_ccode_const_name (CodeNode node) {
+ return CCodeBaseModule.get_ccode_const_name (node);
+ }
+
+ public string get_ccode_copy_function (TypeSymbol node) {
+ return CCodeBaseModule.get_ccode_copy_function (node);
+ }
+
+ public string get_ccode_dup_function (TypeSymbol node) {
+ return CCodeBaseModule.get_ccode_dup_function (node);
+ }
+
+ public string get_ccode_ref_function (TypeSymbol node) {
+ return CCodeBaseModule.get_ccode_ref_function (node);
+ }
+
+ public string get_ccode_unref_function (ObjectTypeSymbol node) {
+ return CCodeBaseModule.get_ccode_unref_function (node);
+ }
+
+ public string get_ccode_free_function (TypeSymbol node) {
+ return CCodeBaseModule.get_ccode_free_function (node);
+ }
+
+ public bool is_reference_counting (TypeSymbol node) {
+ return CCodeBaseModule.is_reference_counting (node);
+ }
+
+ public bool get_ccode_ref_function_void (Class node) {
+ return CCodeBaseModule.get_ccode_ref_function_void (node);
+ }
+
+ public string get_ccode_default_value (TypeSymbol node) {
+ return CCodeBaseModule.get_ccode_default_value (node);
+ }
+
+ public string get_ccode_real_name (Method node) {
+ return CCodeBaseModule.get_ccode_real_name (node);
+ }
+
+ public string get_ccode_lower_case_name (CodeNode node, string? infix = null) {
+ return CCodeBaseModule.get_ccode_lower_case_name (node, infix);
+ }
+
+ public string get_ccode_upper_case_name (Symbol node, string? infix = null) {
+ return CCodeBaseModule.get_ccode_upper_case_name (node, infix);
+ }
+
+ public string get_ccode_lower_case_prefix (Symbol node) {
+ return CCodeBaseModule.get_ccode_lower_case_prefix (node);
+ }
+
+ public double get_ccode_instance_pos (CodeNode node) {
+ return CCodeBaseModule.get_ccode_instance_pos (node);
+ }
+
+ public string get_ccode_vfunc_name (Method node) {
+ return CCodeBaseModule.get_ccode_vfunc_name (node);
+ }
+
+ public string get_ccode_sentinel (Method m) {
+ return CCodeBaseModule.get_ccode_sentinel (m);
+ }
+
public DataType? get_this_type () {
if (current_method != null && current_method.binding == MemberBinding.INSTANCE) {
return current_method.this_parameter.variable_type;
}
public CCodeExpression generate_instance_cast (CCodeExpression expr, TypeSymbol type) {
- return new CCodeCastExpression (expr, type.get_cname () + "*");
+ return new CCodeCastExpression (expr, get_ccode_name (type) + "*");
}
public virtual string? get_custom_creturn_type (Method m) {
*/
public class Vala.DovaDelegateModule : DovaValueModule {
public override void generate_delegate_declaration (Delegate d, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, d, d.get_cname ())) {
+ if (add_symbol_declaration (decl_space, d, get_ccode_name (d))) {
return;
}
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (d.get_cname ()), new CCodeVariableDeclarator (d.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (d)), new CCodeVariableDeclarator (get_ccode_name (d))));
generate_class_declaration (type_class, decl_space);
generate_method_declaration ((Method) object_class.scope.lookup ("ref"), decl_space);
generate_method_declaration ((Method) object_class.scope.lookup ("unref"), decl_space);
- var type_fun = new CCodeFunction ("%s_type_get".printf (d.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (d)), "DovaType *");
if (d.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
decl_space.add_function_declaration (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (d.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (d)));
if (d.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
}
CCodeFunction generate_new_function (Delegate d, CCodeFile decl_space) {
- var function = new CCodeFunction ("%s_new".printf (d.get_lower_case_cname ()), "%s*".printf (d.get_cname ()));
+ var function = new CCodeFunction ("%s_new".printf (get_ccode_lower_case_name (d)), "%s*".printf (get_ccode_name (d)));
if (d.is_internal_symbol ()) {
function.modifiers |= CCodeModifiers.STATIC;
}
function.block = new CCodeBlock ();
var alloc_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_object_alloc"));
- alloc_call.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (d.get_lower_case_cname ()))));
+ alloc_call.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (d)))));
- var cdecl = new CCodeDeclaration ("%s*".printf (d.get_cname ()));
+ var cdecl = new CCodeDeclaration ("%s*".printf (get_ccode_name (d)));
cdecl.add_declarator (new CCodeVariableDeclarator ("this", alloc_call));
function.block.add_statement (cdecl);
init_call.add_argument (new CCodeIdentifier ("target"));
function.block.add_statement (new CCodeExpressionStatement (init_call));
- var priv = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (d.get_upper_case_cname ())));
+ var priv = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (d))));
priv.add_argument (new CCodeIdentifier ("this"));
var assignment = new CCodeAssignment (new CCodeMemberAccess.pointer (priv, "method"), new CCodeIdentifier ("method"));
function.block.add_statement (new CCodeExpressionStatement (assignment));
}
CCodeFunction generate_invoke_function (Delegate d, CCodeFile decl_space) {
- var function = new CCodeFunction ("%s_invoke".printf (d.get_lower_case_cname ()));
+ var function = new CCodeFunction ("%s_invoke".printf (get_ccode_lower_case_name (d)));
if (d.is_internal_symbol ()) {
function.modifiers |= CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("this", "%s*".printf (d.get_cname ())));
+ function.add_parameter (new CCodeParameter ("this", "%s*".printf (get_ccode_name (d))));
string param_list = "";
foreach (Parameter param in d.get_parameters ()) {
generate_type_declaration (param.variable_type, decl_space);
- function.add_parameter (new CCodeParameter (param.name, param.variable_type.get_cname ()));
+ function.add_parameter (new CCodeParameter (param.name, get_ccode_name (param.variable_type)));
if (param_list != "") {
param_list += ", ";
}
- param_list += param.variable_type.get_cname ();
+ param_list += get_ccode_name (param.variable_type);
}
if (d.return_type is GenericType) {
}
param_list += "void *";
} else {
- function.return_type = d.return_type.get_cname ();
+ function.return_type = get_ccode_name (d.return_type);
}
function.block = new CCodeBlock ();
cdecl.add_declarator (new CCodeVariableDeclarator ("target", get_target));
function.block.add_statement (cdecl);
- var priv = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (d.get_upper_case_cname ())));
+ var priv = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (d))));
priv.add_argument (new CCodeIdentifier ("this"));
string instance_param_list = "(DovaObject *";
generate_type_get_function (d, delegate_class);
- var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (d.get_cname ()));
+ var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_name (d)));
instance_priv_struct.add_field ("void", "(*method) (void)");
- cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (d.get_cname ()))));
+ cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (get_ccode_name (d)))));
cfile.add_type_definition (instance_priv_struct);
- string macro = "((%sPrivate *) (((char *) o) + _%s_object_offset))".printf (d.get_cname (), d.get_lower_case_cname ());
- cfile.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (d.get_upper_case_cname (null)), macro));
+ string macro = "((%sPrivate *) (((char *) o) + _%s_object_offset))".printf (get_ccode_name (d), get_ccode_lower_case_name (d));
+ cfile.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (get_ccode_upper_case_name (d, null)), macro));
var cdecl = new CCodeDeclaration ("intptr_t");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (d.get_lower_case_cname ()), new CCodeConstant ("0")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (get_ccode_lower_case_name (d)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
cdecl = new CCodeDeclaration ("intptr_t");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_type_offset".printf (d.get_lower_case_cname ()), new CCodeConstant ("0")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_type_offset".printf (get_ccode_lower_case_name (d)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
if (current_method is CreationMethod && current_method.parent_symbol is Class) {
var cl = current_method.parent_symbol as Class;
- var unref_call = new CCodeFunctionCall (new CCodeIdentifier (cl.get_unref_function ()));
+ var unref_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_unref_function (cl)));
unref_call.add_argument (new CCodeIdentifier ("this"));
ccode.add_expression (unref_call);
ccode.add_return ();
var type_check = new CCodeFunctionCall (new CCodeIdentifier ("any_is_a"));
type_check.add_argument (new CCodeIdentifier ("dova_error"));
- type_check.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (catch_type.type_symbol.get_lower_case_cname ()))));
+ type_check.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (catch_type.type_symbol)))));
ccode.open_if (type_check);
// Check the allowed error domains to propagate
var type_check = new CCodeFunctionCall (new CCodeIdentifier ("any_is_a"));
type_check.add_argument (new CCodeIdentifier ("dova_error"));
- type_check.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (error_class.get_lower_case_cname ()))));
+ type_check.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (error_class)))));
if (ccond == null) {
ccond = type_check;
} else {
is_in_catch = true;
foreach (CatchClause clause in stmt.get_catch_clauses ()) {
- clause.clabel_name = "__catch%d_%s".printf (this_try_id, clause.error_type.get_lower_case_cname ());
+ clause.clabel_name = "__catch%d_%s".printf (this_try_id, get_ccode_lower_case_name (clause.error_type));
}
is_in_catch = false;
}
if (clause.variable_name != null) {
- var cdecl = new CCodeDeclaration (clause.error_type.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (clause.error_type));
cdecl.add_declarator (new CCodeVariableDeclarator (variable_name, new CCodeIdentifier ("dova_error")));
ccode.add_statement (cdecl);
} else {
if (m.base_method != null) {
var base_class = (Class) m.base_method.parent_symbol;
- set_cvalue (expr, new CCodeIdentifier ("%s_base_%s".printf (base_class.get_lower_case_cname (null), m.name)));
+ set_cvalue (expr, new CCodeIdentifier ("%s_base_%s".printf (get_ccode_lower_case_name (base_class, null), m.name)));
return;
} else if (m.base_interface_method != null) {
var base_iface = (Interface) m.base_interface_method.parent_symbol;
- set_cvalue (expr, new CCodeIdentifier ("%s_base_%s".printf (base_iface.get_lower_case_cname (null), m.name)));
+ set_cvalue (expr, new CCodeIdentifier ("%s_base_%s".printf (get_ccode_lower_case_name (base_iface, null), m.name)));
return;
}
}
set_cvalue (expr.inner, ctemp);
}
var base_class = (Class) m.base_method.parent_symbol;
- var vclass = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (base_class.get_upper_case_cname (null))));
+ var vclass = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
vclass.add_argument (inst);
set_cvalue (expr, new CCodeMemberAccess.pointer (vclass, m.name));
} else {
- set_cvalue (expr, new CCodeIdentifier (m.base_method.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m.base_method)));
}
} else if (m.base_interface_method != null) {
- set_cvalue (expr, new CCodeIdentifier (m.base_interface_method.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m.base_interface_method)));
} else if (m is CreationMethod) {
- set_cvalue (expr, new CCodeIdentifier (m.get_real_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_real_name (m)));
} else {
- set_cvalue (expr, new CCodeIdentifier (m.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m)));
}
} else if (expr.symbol_reference is ArrayLengthField) {
var array_type = (ArrayType) expr.inner.value_type;
generate_enum_declaration ((Enum) ev.parent_symbol, cfile);
- set_cvalue (expr, new CCodeConstant (ev.get_cname ()));
+ set_cvalue (expr, new CCodeConstant (get_ccode_name (ev)));
} else if (expr.symbol_reference is Constant) {
var c = (Constant) expr.symbol_reference;
generate_constant_declaration (c, cfile);
- set_cvalue (expr, new CCodeIdentifier (c.get_cname ()));
+ set_cvalue (expr, new CCodeIdentifier (get_ccode_name (c)));
} else if (expr.symbol_reference is Property) {
var prop = (Property) expr.symbol_reference;
if (expr.inner is BaseAccess) {
if (prop.base_property != null) {
var base_class = (Class) prop.base_property.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class, null))));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, "get_%s".printf (prop.name)));
ccall.add_argument (get_cvalue (expr.inner));
return;
} else if (prop.base_interface_property != null) {
var base_iface = (Interface) prop.base_interface_property.parent_symbol;
- string parent_iface_var = "%s_%s_parent_iface".printf (current_class.get_lower_case_cname (null), base_iface.get_lower_case_cname (null));
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class, null), get_ccode_lower_case_name (base_iface, null));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (new CCodeIdentifier (parent_iface_var), "get_%s".printf (prop.name)));
ccall.add_argument (get_cvalue (expr.inner));
} else if (prop.base_interface_property != null) {
base_property = prop.base_interface_property;
}
- string getter_cname = base_property.get_accessor.get_cname ();
+ string getter_cname = get_ccode_name (base_property.get_accessor);
var ccall = new CCodeFunctionCall (new CCodeIdentifier (getter_cname));
if (prop.binding == MemberBinding.INSTANCE) {
CCodeExpression inst;
if (dova_priv) {
- var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (cl.get_upper_case_cname (null))));
+ var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (cl, null))));
priv_call.add_argument (pub_inst);
inst = priv_call;
} else {
inst = pub_inst;
}
if (instance_target_type.data_type.is_reference_type () || (instance != null && instance.value_type is PointerType)) {
- result.cvalue = new CCodeMemberAccess.pointer (inst, f.get_cname ());
+ result.cvalue = new CCodeMemberAccess.pointer (inst, get_ccode_name (f));
} else {
- result.cvalue = new CCodeMemberAccess (inst, f.get_cname ());
+ result.cvalue = new CCodeMemberAccess (inst, get_ccode_name (f));
}
} else {
generate_field_declaration (f, cfile);
- result.cvalue = new CCodeIdentifier (f.get_cname ());
+ result.cvalue = new CCodeIdentifier (get_ccode_name (f));
}
return result;
var cl = (Class) ((ObjectType) itype).type_symbol;
m = cl.default_construction_method;
generate_method_declaration (m, cfile);
- ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
} else if (itype is DelegateType) {
deleg = ((DelegateType) itype).delegate_symbol;
- ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_invoke".printf (deleg.get_lower_case_cname ())));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_invoke".printf (get_ccode_lower_case_name (deleg))));
ccall.add_argument (get_cvalue (expr.call));
}
if (cl == current_class) {
ccall.add_argument (new CCodeIdentifier ("this"));
} else {
- ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("this"), cl.get_cname () + "*"));
+ ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("this"), get_ccode_name (cl) + "*"));
}
} else if (m != null) {
if (m.binding == MemberBinding.INSTANCE) {
}
if (ma.inner is BaseAccess) {
- ccall.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (((Class) current_class.base_class).get_lower_case_cname ()))));
+ ccall.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (current_class.base_class)))));
}
ccall.add_argument (instance);
}
ccall_expr = ccomma;
}
- if (param.ctype != null) {
- cexpr = new CCodeCastExpression (cexpr, param.ctype);
+ if (CCodeBaseModule.get_ccode_type (param) != null) {
+ cexpr = new CCodeCastExpression (cexpr, CCodeBaseModule.get_ccode_type (param));
}
}
}
public class Vala.DovaObjectModule : DovaArrayModule {
public override void generate_class_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, get_ccode_name (cl))) {
return;
}
if (cl.base_class == null) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (cl.get_cname ()), new CCodeVariableDeclarator (cl.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (cl)), new CCodeVariableDeclarator (get_ccode_name (cl))));
} else if (cl == string_type.data_type) {
generate_class_declaration (cl.base_class, decl_space);
- decl_space.add_type_declaration (new CCodeTypeDefinition ("const uint8_t *", new CCodeVariableDeclarator (cl.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("const uint8_t *", new CCodeVariableDeclarator (get_ccode_name (cl))));
} else {
// typedef to base class instead of dummy struct to avoid warnings/casts
generate_class_declaration (cl.base_class, decl_space);
- decl_space.add_type_declaration (new CCodeTypeDefinition (cl.base_class.get_cname (), new CCodeVariableDeclarator (cl.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition (get_ccode_name (cl.base_class), new CCodeVariableDeclarator (get_ccode_name (cl))));
}
if (cl.base_class == null) {
- var instance_struct = new CCodeStruct ("_%s".printf (cl.get_cname ()));
+ var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (cl)));
instance_struct.add_field ("DovaType *", "type");
decl_space.add_type_definition (instance_struct);
} else if (cl == type_class) {
generate_method_declaration ((Method) object_class.scope.lookup ("ref"), decl_space);
generate_method_declaration ((Method) object_class.scope.lookup ("unref"), decl_space);
- var type_fun = new CCodeFunction ("%s_type_get".printf (cl.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (cl)), "DovaType *");
if (cl.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
}
decl_space.add_function_declaration (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (cl.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (cl)));
if (cl.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
}
// add vfunc field to the type struct
- var vdeclarator = new CCodeFunctionDeclarator (m.vfunc_name);
+ var vdeclarator = new CCodeFunctionDeclarator (get_ccode_vfunc_name (m));
generate_cparameters (m, decl_space, new CCodeFunction ("fake"), vdeclarator);
- var vdecl = new CCodeDeclaration (m.return_type.get_cname ());
+ var vdecl = new CCodeDeclaration (get_ccode_name (m.return_type));
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
}
}
void generate_class_private_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, cl.get_cname () + "Private")) {
+ if (add_symbol_declaration (decl_space, cl, get_ccode_name (cl) + "Private")) {
return;
}
- var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (cl.get_cname ()));
- var type_priv_struct = new CCodeStruct ("_%sTypePrivate".printf (cl.get_cname ()));
+ var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_name (cl)));
+ var type_priv_struct = new CCodeStruct ("_%sTypePrivate".printf (get_ccode_name (cl)));
foreach (Field f in cl.get_fields ()) {
if (f.binding == MemberBinding.INSTANCE) {
generate_type_declaration (f.variable_type, decl_space);
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
- instance_priv_struct.add_field (field_ctype, f.get_cname () + f.variable_type.get_cdeclarator_suffix ());
+ instance_priv_struct.add_field (field_ctype, get_ccode_name (f) + f.variable_type.get_cdeclarator_suffix ());
}
}
var t = (ObjectTypeSymbol) prop.parent_symbol;
var this_type = new ObjectType (t);
- var cselfparam = new CCodeParameter ("this", this_type.get_cname ());
- var cvalueparam = new CCodeParameter ("value", prop.property_type.get_cname ());
+ var cselfparam = new CCodeParameter ("this", get_ccode_name (this_type));
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.property_type));
if (prop.get_accessor != null) {
var vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (prop.name));
vdeclarator.add_parameter (cselfparam);
- string creturn_type = prop.property_type.get_cname ();
+ string creturn_type = get_ccode_name (prop.property_type);
var vdecl = new CCodeDeclaration (creturn_type);
vdecl.add_declarator (vdeclarator);
}
if (!instance_priv_struct.is_empty) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (cl.get_cname ()))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (get_ccode_name (cl)))));
decl_space.add_type_definition (instance_priv_struct);
}
if (!type_priv_struct.is_empty) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sTypePrivate".printf (cl.get_cname ()))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sTypePrivate".printf (get_ccode_name (cl)))));
decl_space.add_type_definition (type_priv_struct);
}
var cdecl = new CCodeDeclaration ("intptr_t");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (cl.get_lower_case_cname ()), new CCodeConstant ("0")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (get_ccode_lower_case_name (cl)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
decl_space.add_type_member_declaration (cdecl);
string macro;
if (cl.base_class == null) {
// offset of any class is 0
- macro = "((%sPrivate *) o)".printf (cl.get_cname ());
+ macro = "((%sPrivate *) o)".printf (get_ccode_name (cl));
type_offset = new CCodeConstant ("sizeof (anyPrivate) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate)");
} else if (cl == object_class) {
- macro = "((%sPrivate *) (((char *) o) + sizeof (anyPrivate)))".printf (cl.get_cname ());
+ macro = "((%sPrivate *) (((char *) o) + sizeof (anyPrivate)))".printf (get_ccode_name (cl));
type_offset = new CCodeConstant ("sizeof (anyPrivate) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate) + sizeof (anyTypePrivate)");
} else if (cl == type_class) {
- macro = "((%sPrivate *) (((char *) o) + sizeof (anyPrivate) + sizeof (DovaObjectPrivate)))".printf (cl.get_cname ());
+ macro = "((%sPrivate *) (((char *) o) + sizeof (anyPrivate) + sizeof (DovaObjectPrivate)))".printf (get_ccode_name (cl));
type_offset = new CCodeConstant ("sizeof (anyPrivate) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate) + sizeof (anyTypePrivate) + sizeof (DovaObjectTypePrivate)");
} else {
- macro = "((%sPrivate *) (((char *) o) + _%s_object_offset))".printf (cl.get_cname (), cl.get_lower_case_cname ());
+ macro = "((%sPrivate *) (((char *) o) + _%s_object_offset))".printf (get_ccode_name (cl), get_ccode_lower_case_name (cl));
type_offset = new CCodeConstant ("0");
}
if (!instance_priv_struct.is_empty) {
- decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (cl.get_upper_case_cname (null)), macro));
+ decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (get_ccode_upper_case_name (cl, null)), macro));
}
cdecl = new CCodeDeclaration ("intptr_t");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_type_offset".printf (cl.get_lower_case_cname ()), type_offset));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_type_offset".printf (get_ccode_lower_case_name (cl)), type_offset));
cdecl.modifiers = CCodeModifiers.STATIC;
decl_space.add_type_member_declaration (cdecl);
}
}
var cdecl = new CCodeDeclaration ("DovaType *");
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (cl.get_lower_case_cname ()), new CCodeConstant ("NULL")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (get_ccode_lower_case_name (cl)), new CCodeConstant ("NULL")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
- var type_fun = new CCodeFunction ("%s_type_get".printf (cl.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (cl)), "DovaType *");
if (cl.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
if (base_class == null) {
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier ("%sPrivate".printf (cl.get_cname ())));
+ sizeof_call.add_argument (new CCodeIdentifier ("%sPrivate".printf (get_ccode_name (cl))));
var calloc_call = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
calloc_call.add_argument (new CCodeConstant ("1"));
calloc_call.add_argument (new CCodeConstant ("sizeof (anyPrivate) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate) + sizeof (anyTypePrivate)"));
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())), calloc_call)));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))), calloc_call)));
var set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_object_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))));
set_size.add_argument (sizeof_call);
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_any_type_offset"), new CCodeConstant ("sizeof (any) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate)"))));
set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_type_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))));
set_size.add_argument (new CCodeConstant ("sizeof (any) + sizeof (DovaObjectPrivate) + sizeof (DovaTypePrivate) + sizeof (anyTypePrivate)"));
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())), "type"), new CCodeFunctionCall (new CCodeIdentifier ("dova_type_type_get")))));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))), "type"), new CCodeFunctionCall (new CCodeIdentifier ("dova_type_type_get")))));
} else {
generate_method_declaration ((Method) object_class.scope.lookup ("alloc"), cfile);
generate_method_declaration ((Method) type_class.scope.lookup ("alloc"), cfile);
- var base_type = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (base_class.get_lower_case_cname ())));
+ var base_type = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (base_class))));
for (int i = 0; i < base_class.get_type_parameters ().size; i++) {
base_type.add_argument (new CCodeConstant ("NULL"));
}
var alloc_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_alloc"));
alloc_call.add_argument (base_type);
if (!(cl is Class) || has_instance_struct ((Class) cl)) {
- alloc_call.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (cl.get_cname ())));
+ alloc_call.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (get_ccode_name (cl))));
} else {
alloc_call.add_argument (new CCodeConstant ("0"));
}
if ((!(cl is Class) || has_type_struct ((Class) cl)) && !(cl is Delegate)) {
- alloc_call.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (cl.get_cname ())));
+ alloc_call.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (get_ccode_name (cl))));
} else {
alloc_call.add_argument (new CCodeConstant ("0"));
}
- alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ()))));
- alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_object_offset".printf (cl.get_lower_case_cname ()))));
- alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_type_offset".printf (cl.get_lower_case_cname ()))));
+ alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl)))));
+ alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_object_offset".printf (get_ccode_lower_case_name (cl)))));
+ alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_type_offset".printf (get_ccode_lower_case_name (cl)))));
type_init_block.add_statement (new CCodeExpressionStatement (alloc_call));
}
- var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (cl.get_lower_case_cname ())));
- type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())));
+ var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (cl))));
+ type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))));
if (object_type_symbol != null) {
for (int i = 0; i < object_type_symbol.get_type_parameters ().size; i++) {
type_init_block.add_statement (new CCodeExpressionStatement (type_init_call));
- type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ()))), type_init_block));
+ type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl)))), type_init_block));
if (object_type_symbol != null && object_type_symbol.get_type_parameters ().size > 0) {
// generics
generate_method_declaration ((Method) type_class.scope.lookup ("insert_type"), cfile);
var first = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_get_next_type"));
- first.add_argument (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())));
+ first.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))));
cdecl = new CCodeDeclaration ("DovaType *");
cdecl.add_declarator (new CCodeVariableDeclarator ("result", first));
generate_method_declaration ((Method) type_class.scope.lookup ("alloc"), cfile);
- var base_type = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (base_class.get_lower_case_cname ())));
+ var base_type = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (base_class))));
if (base_class_type != null) {
foreach (var type_arg in base_class_type.get_type_arguments ()) {
base_type.add_argument (get_type_id_expression (type_arg, true));
var alloc_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_alloc"));
alloc_call.add_argument (base_type);
if (!(cl is Class) || has_instance_struct ((Class) cl)) {
- alloc_call.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (cl.get_cname ())));
+ alloc_call.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (get_ccode_name (cl))));
} else {
alloc_call.add_argument (new CCodeConstant ("0"));
}
if (!(cl is Class) || has_type_struct ((Class) cl)) {
- alloc_call.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (cl.get_cname ())));
+ alloc_call.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (get_ccode_name (cl))));
} else {
alloc_call.add_argument (new CCodeConstant ("0"));
}
alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("result")));
- alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_object_offset".printf (cl.get_lower_case_cname ()))));
- alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_type_offset".printf (cl.get_lower_case_cname ()))));
+ alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_object_offset".printf (get_ccode_lower_case_name (cl)))));
+ alloc_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_%s_type_offset".printf (get_ccode_lower_case_name (cl)))));
specialized_type_init_block.add_statement (new CCodeExpressionStatement (alloc_call));
- type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (cl.get_lower_case_cname ())));
+ type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (cl))));
type_init_call.add_argument (new CCodeIdentifier ("result"));
foreach (var type_param in object_type_symbol.get_type_parameters ()) {
specialized_type_init_block.add_statement (new CCodeExpressionStatement (type_init_call));
var insert_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_insert_type"));
- insert_call.add_argument (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ())));
+ insert_call.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl))));
insert_call.add_argument (new CCodeIdentifier ("result"));
specialized_type_init_block.add_statement (new CCodeExpressionStatement (insert_call));
type_fun.block.add_statement (new CCodeIfStatement (new CCodeIdentifier ("%s_type".printf (object_type_symbol.get_type_parameters ().get (0).name.down ())), specialized_type_get_block));
}
- type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (cl.get_lower_case_cname ()))));
+ type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (cl)))));
cfile.add_function (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (cl.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (cl)));
if (cl.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
var value_copy_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_copy"));
value_copy_call.add_argument (new CCodeIdentifier ("type"));
- value_copy_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_copy".printf (cl.get_lower_case_cname ())), "void (*)(void *, intptr_t, void *, intptr_t)"));
+ value_copy_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_copy".printf (get_ccode_lower_case_name (cl))), "void (*)(void *, intptr_t, void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_copy_call));
- var function = new CCodeFunction ("%s_copy".printf (cl.get_lower_case_cname ()), "void");
+ var function = new CCodeFunction ("%s_copy".printf (get_ccode_lower_case_name (cl)), "void");
function.modifiers = CCodeModifiers.STATIC;
function.add_parameter (new CCodeParameter ("dest", "any **"));
function.add_parameter (new CCodeParameter ("dest_index", "intptr_t"));
var dest = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("dest"), new CCodeIdentifier ("dest_index"));
var src = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("src"), new CCodeIdentifier ("src_index"));
- var unref_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_unref".printf (cl.get_lower_case_cname ())));
+ var unref_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_unref".printf (get_ccode_lower_case_name (cl))));
unref_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, dest));
var unref_block = new CCodeBlock ();
unref_block.add_statement (new CCodeExpressionStatement (unref_call));
unref_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, dest), new CCodeConstant ("NULL"))));
function.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, dest), unref_block));
- var ref_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_ref".printf (cl.get_lower_case_cname ())));
+ var ref_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_ref".printf (get_ccode_lower_case_name (cl))));
ref_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, src));
var ref_block = new CCodeBlock ();
ref_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, dest), ref_call)));
cfile.add_function (function);
{
- var value_equals_fun = new CCodeFunction ("%s_value_equals".printf (cl.get_lower_case_cname ()), "bool");
+ var value_equals_fun = new CCodeFunction ("%s_value_equals".printf (get_ccode_lower_case_name (cl)), "bool");
value_equals_fun.modifiers = CCodeModifiers.STATIC;
- value_equals_fun.add_parameter (new CCodeParameter ("value", cl.get_cname () + "**"));
+ value_equals_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (cl) + "**"));
value_equals_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
- value_equals_fun.add_parameter (new CCodeParameter ("other", cl.get_cname () + "**"));
+ value_equals_fun.add_parameter (new CCodeParameter ("other", get_ccode_name (cl) + "**"));
value_equals_fun.add_parameter (new CCodeParameter ("other_index", "intptr_t"));
value_equals_fun.block = new CCodeBlock ();
var val = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("value"), new CCodeIdentifier ("value_index"));
var value_equals_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_equals"));
value_equals_call.add_argument (new CCodeIdentifier ("type"));
- value_equals_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_equals".printf (cl.get_lower_case_cname ())), "bool (*)(void *, intptr_t, void *, intptr_t)"));
+ value_equals_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_equals".printf (get_ccode_lower_case_name (cl))), "bool (*)(void *, intptr_t, void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_equals_call));
}
{
- var value_hash_fun = new CCodeFunction ("%s_value_hash".printf (cl.get_lower_case_cname ()), "uintptr_t");
+ var value_hash_fun = new CCodeFunction ("%s_value_hash".printf (get_ccode_lower_case_name (cl)), "uintptr_t");
value_hash_fun.modifiers = CCodeModifiers.STATIC;
- value_hash_fun.add_parameter (new CCodeParameter ("value", cl.get_cname () + "**"));
+ value_hash_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (cl) + "**"));
value_hash_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_hash_fun.block = new CCodeBlock ();
var val = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("value"), new CCodeIdentifier ("value_index"));
var value_hash_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_hash"));
value_hash_call.add_argument (new CCodeIdentifier ("type"));
- value_hash_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_hash".printf (cl.get_lower_case_cname ())), "uintptr_t (*)(void *, intptr_t)"));
+ value_hash_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_hash".printf (get_ccode_lower_case_name (cl))), "uintptr_t (*)(void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_hash_call));
}
// generate method to box value
- var value_to_any_fun = new CCodeFunction ("%s_value_to_any".printf (cl.get_lower_case_cname ()), "any*");
+ var value_to_any_fun = new CCodeFunction ("%s_value_to_any".printf (get_ccode_lower_case_name (cl)), "any*");
value_to_any_fun.modifiers = CCodeModifiers.STATIC;
- value_to_any_fun.add_parameter (new CCodeParameter ("value", cl.get_cname () + "**"));
+ value_to_any_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (cl) + "**"));
value_to_any_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_to_any_fun.block = new CCodeBlock ();
var val = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("value"), new CCodeIdentifier ("value_index"));
- string to_any_fun = "%s_ref".printf (cl.get_lower_case_cname ());
+ string to_any_fun = "%s_ref".printf (get_ccode_lower_case_name (cl));
if (cl == string_class) {
to_any_fun = "string_to_any";
}
var value_to_any_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_to_any"));
value_to_any_call.add_argument (new CCodeIdentifier ("type"));
- value_to_any_call.add_argument (new CCodeIdentifier ("%s_value_to_any".printf (cl.get_lower_case_cname ())));
+ value_to_any_call.add_argument (new CCodeIdentifier ("%s_value_to_any".printf (get_ccode_lower_case_name (cl))));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_to_any_call));
// generate method to unbox value
- var value_from_any_fun = new CCodeFunction ("%s_value_from_any".printf (cl.get_lower_case_cname ()));
+ var value_from_any_fun = new CCodeFunction ("%s_value_from_any".printf (get_ccode_lower_case_name (cl)));
value_from_any_fun.modifiers = CCodeModifiers.STATIC;
value_from_any_fun.add_parameter (new CCodeParameter ("any_", "any *"));
- value_from_any_fun.add_parameter (new CCodeParameter ("value", cl.get_cname () + "**"));
+ value_from_any_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (cl) + "**"));
value_from_any_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_from_any_fun.block = new CCodeBlock ();
- string from_any_fun = "%s_ref".printf (cl.get_lower_case_cname ());
+ string from_any_fun = "%s_ref".printf (get_ccode_lower_case_name (cl));
if (cl == string_class) {
from_any_fun = "string_from_any";
}
var value_from_any_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_from_any"));
value_from_any_call.add_argument (new CCodeIdentifier ("type"));
- value_from_any_call.add_argument (new CCodeIdentifier ("%s_value_from_any".printf (cl.get_lower_case_cname ())));
+ value_from_any_call.add_argument (new CCodeIdentifier ("%s_value_from_any".printf (get_ccode_lower_case_name (cl))));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_from_any_call));
} else {
- type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (base_class.get_lower_case_cname ())));
+ type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (base_class))));
type_init_call.add_argument (new CCodeIdentifier ("type"));
if (base_class_type != null) {
}
void add_finalize_function (Class cl) {
- var function = new CCodeFunction ("%sfinalize".printf (cl.get_lower_case_cprefix ()), "void");
+ var function = new CCodeFunction ("%sfinalize".printf (get_ccode_lower_case_prefix (cl)), "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("this", cl.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("this", get_ccode_name (cl) + "*"));
push_function (function);
if (f.binding == MemberBinding.INSTANCE) {
CCodeExpression lhs = null;
if (f.is_internal_symbol ()) {
- var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (cl.get_upper_case_cname (null))));
+ var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (cl, null))));
priv_call.add_argument (new CCodeIdentifier ("this"));
- lhs = new CCodeMemberAccess.pointer (priv_call, f.get_cname ());
+ lhs = new CCodeMemberAccess.pointer (priv_call, get_ccode_name (f));
} else {
- lhs = new CCodeMemberAccess.pointer (new CCodeIdentifier ("this"), f.get_cname ());
+ lhs = new CCodeMemberAccess.pointer (new CCodeIdentifier ("this"), get_ccode_name (f));
}
if (requires_destroy (f.variable_type)) {
var object_type = (ObjectType) base_type;
if (object_type.type_symbol is Class) {
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("dova_object_base_finalize"));
- var type_get_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (object_type.type_symbol.get_lower_case_cname ())));
+ var type_get_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (object_type.type_symbol))));
foreach (var type_arg in base_type.get_type_arguments ()) {
type_get_call.add_argument (get_type_id_expression (type_arg, false));
}
if (object_type.type_symbol is Interface) {
generate_interface_declaration ((Interface) object_type.type_symbol, cfile);
- var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (object_type.type_symbol.get_lower_case_cname ())));
+ var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (object_type.type_symbol))));
type_init_call.add_argument (new CCodeIdentifier ("type"));
foreach (var type_arg in base_type.get_type_arguments ()) {
type_init_call.add_argument (get_type_id_expression (type_arg, true));
var override_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_object_override_finalize"));
override_call.add_argument (new CCodeIdentifier ("type"));
- override_call.add_argument (new CCodeIdentifier ("%sfinalize".printf (cl.get_lower_case_cprefix ())));
+ override_call.add_argument (new CCodeIdentifier ("%sfinalize".printf (get_ccode_lower_case_prefix (cl))));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
}
foreach (Method m in cl.get_methods ()) {
if (m.is_virtual || m.overrides) {
- var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_%s".printf (m.base_method.parent_symbol.get_lower_case_cprefix (), m.name)));
+ var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_%s".printf (get_ccode_lower_case_prefix (m.base_method.parent_symbol), m.name)));
override_call.add_argument (new CCodeIdentifier ("type"));
- override_call.add_argument (new CCodeIdentifier (m.get_real_cname ()));
+ override_call.add_argument (new CCodeIdentifier (get_ccode_real_name (m)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
} else if (m.base_interface_method != null) {
- var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_%s".printf (m.base_interface_method.parent_symbol.get_lower_case_cprefix (), m.name)));
+ var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_%s".printf (get_ccode_lower_case_prefix (m.base_interface_method.parent_symbol), m.name)));
override_call.add_argument (new CCodeIdentifier ("type"));
- override_call.add_argument (new CCodeIdentifier (m.get_real_cname ()));
+ override_call.add_argument (new CCodeIdentifier (get_ccode_real_name (m)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
}
}
foreach (Property prop in cl.get_properties ()) {
if (prop.is_virtual || prop.overrides) {
if (prop.get_accessor != null) {
- var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_get_%s".printf (prop.base_property.parent_symbol.get_lower_case_cprefix (), prop.name)));
+ var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_get_%s".printf (get_ccode_lower_case_prefix (prop.base_property.parent_symbol), prop.name)));
override_call.add_argument (new CCodeIdentifier ("type"));
- override_call.add_argument (new CCodeIdentifier (prop.get_accessor.get_cname ()));
+ override_call.add_argument (new CCodeIdentifier (get_ccode_name (prop.get_accessor)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
}
if (prop.set_accessor != null) {
- var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_set_%s".printf (prop.base_property.parent_symbol.get_lower_case_cprefix (), prop.name)));
+ var override_call = new CCodeFunctionCall (new CCodeIdentifier ("%soverride_set_%s".printf (get_ccode_lower_case_prefix (prop.base_property.parent_symbol), prop.name)));
override_call.add_argument (new CCodeIdentifier ("type"));
- override_call.add_argument (new CCodeIdentifier (prop.set_accessor.get_cname ()));
+ override_call.add_argument (new CCodeIdentifier (get_ccode_name (prop.set_accessor)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
}
}
generate_interface_declaration (iface, cfile);
- var type_priv_struct = new CCodeStruct ("_%sTypePrivate".printf (iface.get_cname ()));
+ var type_priv_struct = new CCodeStruct ("_%sTypePrivate".printf (get_ccode_name (iface)));
foreach (var type_param in iface.get_type_parameters ()) {
var type_param_decl = new CCodeDeclaration ("DovaType *");
}
if (!type_priv_struct.is_empty) {
- cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sTypePrivate".printf (iface.get_cname ()))));
+ cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sTypePrivate".printf (get_ccode_name (iface)))));
cfile.add_type_definition (type_priv_struct);
}
var cdecl = new CCodeDeclaration ("DovaType *");
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (iface.get_lower_case_cname ()), new CCodeConstant ("NULL")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (get_ccode_lower_case_name (iface)), new CCodeConstant ("NULL")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
- var type_fun = new CCodeFunction ("%s_type_get".printf (iface.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (iface)), "DovaType *");
if (iface.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
calloc_call.add_argument (new CCodeConstant ("1"));
if (!type_priv_struct.is_empty) {
- calloc_call.add_argument (new CCodeConstant ("dova_type_get_type_size (dova_type_type_get ()) + sizeof (%sTypePrivate)".printf (iface.get_cname ())));
+ calloc_call.add_argument (new CCodeConstant ("dova_type_get_type_size (dova_type_type_get ()) + sizeof (%sTypePrivate)".printf (get_ccode_name (iface))));
} else {
calloc_call.add_argument (new CCodeConstant ("dova_type_get_type_size (dova_type_type_get ())"));
}
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ())), calloc_call)));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (iface))), calloc_call)));
// call any_type_init to set value_copy and similar functions
var any_type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("any_type_init"));
- any_type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ())));
+ any_type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (iface))));
type_init_block.add_statement (new CCodeExpressionStatement (any_type_init_call));
- var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (iface.get_lower_case_cname ())));
- type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ())));
+ var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (iface))));
+ type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (iface))));
foreach (var type_param in iface.get_type_parameters ()) {
type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (type_param.name.down ())));
}
type_init_block.add_statement (new CCodeExpressionStatement (type_init_call));
- type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ()))), type_init_block));
+ type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (iface)))), type_init_block));
- type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ()))));
+ type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (iface)))));
cfile.add_function (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (iface.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (iface)));
if (iface.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
foreach (DataType base_type in iface.get_prerequisites ()) {
var object_type = (ObjectType) base_type;
if (object_type.type_symbol is Interface) {
- type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (object_type.type_symbol.get_lower_case_cname ())));
+ type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (object_type.type_symbol))));
type_init_call.add_argument (new CCodeIdentifier ("type"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (type_init_call));
}
var vtable_alloc = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
vtable_alloc.add_argument (new CCodeConstant ("1"));
- vtable_alloc.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (iface.get_cname ())));
+ vtable_alloc.add_argument (new CCodeConstant ("sizeof (%sTypePrivate)".printf (get_ccode_name (iface))));
- var type_get_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (iface.get_lower_case_cname ())));
+ var type_get_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (iface))));
foreach (var type_param in iface.get_type_parameters ()) {
type_get_call.add_argument (new CCodeIdentifier ("%s_type".printf (type_param.name.down ())));
}
}
public override void generate_property_accessor_declaration (PropertyAccessor acc, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, acc.prop, acc.get_cname ())) {
+ if (add_symbol_declaration (decl_space, acc.prop, get_ccode_name (acc))) {
return;
}
CCodeFunction function;
if (acc.readable) {
- function = new CCodeFunction (acc.get_cname (), acc.value_type.get_cname ());
+ function = new CCodeFunction (get_ccode_name (acc), get_ccode_name (acc.value_type));
} else {
- function = new CCodeFunction (acc.get_cname (), "void");
+ function = new CCodeFunction (get_ccode_name (acc), "void");
}
if (prop.binding == MemberBinding.INSTANCE) {
}
generate_type_declaration (this_type, decl_space);
- var cselfparam = new CCodeParameter ("this", this_type.get_cname ());
+ var cselfparam = new CCodeParameter ("this", get_ccode_name (this_type));
function.add_parameter (cselfparam);
}
if (acc.writable) {
- var cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname ());
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type));
function.add_parameter (cvalueparam);
}
decl_space.add_function_declaration (function);
if (prop.is_abstract || prop.is_virtual) {
- string param_list = "(%s *this".printf (((ObjectTypeSymbol) prop.parent_symbol).get_cname ());
+ string param_list = "(%s *this".printf (get_ccode_name (prop.parent_symbol));
if (!acc.readable) {
param_list += ", ";
- param_list += acc.value_type.get_cname ();
+ param_list += get_ccode_name (acc.value_type);
}
param_list += ")";
- var override_func = new CCodeFunction ("%soverride_%s_%s".printf (prop.parent_symbol.get_lower_case_cprefix (), acc.readable ? "get" : "set", prop.name));
+ var override_func = new CCodeFunction ("%soverride_%s_%s".printf (get_ccode_lower_case_prefix (prop.parent_symbol), acc.readable ? "get" : "set", prop.name));
override_func.add_parameter (new CCodeParameter ("type", "DovaType *"));
- override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), acc.readable ? acc.value_type.get_cname () : "void"));
+ override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), acc.readable ? get_ccode_name (acc.value_type) : "void"));
decl_space.add_function_declaration (override_func);
}
var t = (ObjectTypeSymbol) prop.parent_symbol;
this_type = new ObjectType (t);
}
- var cselfparam = new CCodeParameter ("this", this_type.get_cname ());
- var cvalueparam = new CCodeParameter ("value", acc.value_type.get_cname ());
+ var cselfparam = new CCodeParameter ("this", get_ccode_name (this_type));
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (acc.value_type));
- string cname = acc.get_cname ();
+ string cname = get_ccode_name (acc);
if (prop.is_abstract || prop.is_virtual) {
CCodeFunction function;
if (acc.readable) {
- function = new CCodeFunction (acc.get_cname (), current_return_type.get_cname ());
+ function = new CCodeFunction (get_ccode_name (acc), get_ccode_name (current_return_type));
} else {
- function = new CCodeFunction (acc.get_cname (), "void");
+ function = new CCodeFunction (get_ccode_name (acc), "void");
}
function.add_parameter (cselfparam);
if (acc.writable) {
cfile.add_function (function);
- string param_list = "(%s *this".printf (((ObjectTypeSymbol) prop.parent_symbol).get_cname ());
+ string param_list = "(%s *this".printf (get_ccode_name (prop.parent_symbol));
if (!acc.readable) {
param_list += ", ";
- param_list += acc.value_type.get_cname ();
+ param_list += get_ccode_name (acc.value_type);
}
param_list += ")";
- var override_func = new CCodeFunction ("%soverride_%s_%s".printf (prop.parent_symbol.get_lower_case_cprefix (), acc.readable ? "get" : "set", prop.name));
+ var override_func = new CCodeFunction ("%soverride_%s_%s".printf (get_ccode_lower_case_prefix (prop.parent_symbol), acc.readable ? "get" : "set", prop.name));
override_func.add_parameter (new CCodeParameter ("type", "DovaType *"));
- override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), acc.readable ? acc.value_type.get_cname () : "void"));
+ override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), acc.readable ? get_ccode_name (acc.value_type) : "void"));
push_function (override_func);
if (acc.writable) {
function = new CCodeFunction (cname, "void");
} else {
- function = new CCodeFunction (cname, acc.value_type.get_cname ());
+ function = new CCodeFunction (cname, get_ccode_name (acc.value_type));
}
if (prop.binding == MemberBinding.INSTANCE) {
acc.body.emit (this);
if (acc.readable) {
- var cdecl = new CCodeDeclaration (acc.value_type.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (acc.value_type));
cdecl.add_declarator (new CCodeVariableDeclarator.zero ("result", default_value_for_type (acc.value_type, true)));
function.block.prepend_statement (cdecl);
}
public override void generate_interface_declaration (Interface iface, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, get_ccode_name (iface))) {
return;
}
// typedef to DovaObject instead of dummy struct to avoid warnings/casts
generate_class_declaration (object_class, decl_space);
- decl_space.add_type_declaration (new CCodeTypeDefinition ("DovaObject", new CCodeVariableDeclarator (iface.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("DovaObject", new CCodeVariableDeclarator (get_ccode_name (iface))));
generate_class_declaration (type_class, decl_space);
- var type_fun = new CCodeFunction ("%s_type_get".printf (iface.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (iface)), "DovaType *");
if (iface.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
}
decl_space.add_function_declaration (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (iface.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (iface)));
if (iface.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
}
public override void generate_method_declaration (Method m, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
return;
}
- var function = new CCodeFunction (m.get_cname ());
+ var function = new CCodeFunction (get_ccode_name (m));
if (m.is_internal_symbol ()) {
function.modifiers |= CCodeModifiers.STATIC;
if (m.is_abstract || m.is_virtual) {
var base_func = function.copy ();
- base_func.name = "%sbase_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name);
+ base_func.name = "%sbase_%s".printf (get_ccode_lower_case_prefix (m.parent_symbol), m.name);
base_func.insert_parameter (0, new CCodeParameter ("base_type", "DovaType *"));
decl_space.add_function_declaration (base_func);
- string param_list = "(%s *this".printf (((ObjectTypeSymbol) m.parent_symbol).get_cname ());
+ string param_list = "(%s *this".printf (get_ccode_name (m.parent_symbol));
foreach (var param in m.get_parameters ()) {
param_list += ", ";
- param_list += param.variable_type.get_cname ();
+ param_list += get_ccode_name (param.variable_type);
}
if (m.return_type is GenericType) {
param_list += ", void *";
}
param_list += ")";
- var override_func = new CCodeFunction ("%soverride_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name));
+ var override_func = new CCodeFunction ("%soverride_%s".printf (get_ccode_lower_case_prefix (m.parent_symbol), m.name));
override_func.add_parameter (new CCodeParameter ("type", "DovaType *"));
- override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), (m.return_type is GenericType) ? "void" : m.return_type.get_cname ()));
+ override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), (m.return_type is GenericType) ? "void" : get_ccode_name (m.return_type)));
decl_space.add_function_declaration (override_func);
}
generate_class_declaration ((Class) m.parent_symbol, decl_space);
// _init function
- function = new CCodeFunction (m.get_real_cname ());
+ function = new CCodeFunction (get_ccode_real_name (m));
if (m.is_internal_symbol ()) {
function.modifiers |= CCodeModifiers.STATIC;
generate_method_declaration (m, header_file);
}
- var function = new CCodeFunction (m.get_real_cname ());
+ var function = new CCodeFunction (get_ccode_real_name (m));
generate_cparameters (m, cfile, function);
// as closures have block data parameter
if (m.binding == MemberBinding.INSTANCE) {
var cself = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data%d_".printf (block_id)), "this");
- var cdecl = new CCodeDeclaration ("%s *".printf (current_class.get_cname ()));
+ var cdecl = new CCodeDeclaration ("%s *".printf (get_ccode_name (current_class)));
cdecl.add_declarator (new CCodeVariableDeclarator ("this", cself));
ccode.add_statement (cdecl);
m.body.emit (this);
if (!(m.return_type is VoidType) && !(m.return_type is GenericType)) {
- var cdecl = new CCodeDeclaration (m.return_type.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (m.return_type));
cdecl.add_declarator (new CCodeVariableDeclarator.zero ("result", default_value_for_type (m.return_type, true)));
ccode.add_statement (cdecl);
var st = m.parent_symbol as Struct;
if (m is CreationMethod && st != null && (st.is_boolean_type () || st.is_integer_type () || st.is_floating_type ())) {
- var cdecl = new CCodeDeclaration (st.get_cname ());
+ var cdecl = new CCodeDeclaration (get_ccode_name (st));
cdecl.add_declarator (new CCodeVariableDeclarator ("this", new CCodeConstant ("0")));
ccode.add_statement (cdecl);
if (m.is_abstract || m.is_virtual) {
generate_class_declaration ((Class) object_class, cfile);
- var vfunc = new CCodeFunction (m.get_cname (), (m.return_type is GenericType) ? "void" : m.return_type.get_cname ());
+ var vfunc = new CCodeFunction (get_ccode_name (m), (m.return_type is GenericType) ? "void" : get_ccode_name (m.return_type));
vfunc.block = new CCodeBlock ();
- vfunc.add_parameter (new CCodeParameter ("this", "%s *".printf (((ObjectTypeSymbol) m.parent_symbol).get_cname ())));
+ vfunc.add_parameter (new CCodeParameter ("this", "%s *".printf (get_ccode_name (m.parent_symbol))));
foreach (TypeParameter type_param in m.get_type_parameters ()) {
vfunc.add_parameter (new CCodeParameter ("%s_type".printf (type_param.name.down ()), "DovaType*"));
}
foreach (Parameter param in m.get_parameters ()) {
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
if (param.direction != ParameterDirection.IN) {
ctypename += "*";
}
var vcast = get_type_private_from_type ((ObjectTypeSymbol) m.parent_symbol, get_type_from_instance (new CCodeIdentifier ("this")));
- var vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, m.vfunc_name));
+ var vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, get_ccode_vfunc_name (m)));
vcall.add_argument (new CCodeIdentifier ("this"));
foreach (TypeParameter type_param in m.get_type_parameters ()) {
vcall.add_argument (new CCodeIdentifier ("%s_type".printf (type_param.name.down ())));
cfile.add_function (vfunc);
- vfunc = new CCodeFunction ("%sbase_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name), (m.return_type is GenericType) ? "void" : m.return_type.get_cname ());
+ vfunc = new CCodeFunction ("%sbase_%s".printf (get_ccode_lower_case_prefix (m.parent_symbol), m.name), (m.return_type is GenericType) ? "void" : get_ccode_name (m.return_type));
vfunc.block = new CCodeBlock ();
vfunc.add_parameter (new CCodeParameter ("base_type", "DovaType *"));
- vfunc.add_parameter (new CCodeParameter ("this", "%s *".printf (((ObjectTypeSymbol) m.parent_symbol).get_cname ())));
+ vfunc.add_parameter (new CCodeParameter ("this", "%s *".printf (get_ccode_name (m.parent_symbol))));
foreach (TypeParameter type_param in m.get_type_parameters ()) {
vfunc.add_parameter (new CCodeParameter ("%s_type".printf (type_param.name.down ()), "DovaType*"));
}
foreach (Parameter param in m.get_parameters ()) {
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
if (param.direction != ParameterDirection.IN) {
ctypename += "*";
}
vcast = get_type_private_from_type ((ObjectTypeSymbol) m.parent_symbol, base_type);
- vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, m.vfunc_name));
+ vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, get_ccode_vfunc_name (m)));
vcall.add_argument (new CCodeIdentifier ("this"));
foreach (TypeParameter type_param in m.get_type_parameters ()) {
vcall.add_argument (new CCodeIdentifier ("%s_type".printf (type_param.name.down ())));
cfile.add_function (vfunc);
- string param_list = "(%s *this".printf (((ObjectTypeSymbol) m.parent_symbol).get_cname ());
+ string param_list = "(%s *this".printf (get_ccode_name (m.parent_symbol));
foreach (var param in m.get_parameters ()) {
param_list += ", ";
- param_list += param.variable_type.get_cname ();
+ param_list += get_ccode_name (param.variable_type);
}
if (m.return_type is GenericType) {
param_list += ", void *";
}
param_list += ")";
- var override_func = new CCodeFunction ("%soverride_%s".printf (m.parent_symbol.get_lower_case_cprefix (), m.name));
+ var override_func = new CCodeFunction ("%soverride_%s".printf (get_ccode_lower_case_prefix (m.parent_symbol), m.name));
override_func.add_parameter (new CCodeParameter ("type", "DovaType *"));
- override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), (m.return_type is GenericType) ? "void" : m.return_type.get_cname ()));
+ override_func.add_parameter (new CCodeParameter ("(*function) %s".printf (param_list), (m.return_type is GenericType) ? "void" : get_ccode_name (m.return_type)));
override_func.block = new CCodeBlock ();
vcast = get_type_private_from_type ((ObjectTypeSymbol) m.parent_symbol, new CCodeIdentifier ("type"));
// do not generate _new functions for creation methods of abstract classes
if (current_type_symbol is Class && !current_class.is_abstract) {
- var vfunc = new CCodeFunction (m.get_cname ());
+ var vfunc = new CCodeFunction (get_ccode_name (m));
var vblock = new CCodeBlock ();
- var cdecl = new CCodeDeclaration ("%s *".printf (current_type_symbol.get_cname ()));
+ var cdecl = new CCodeDeclaration ("%s *".printf (get_ccode_name (current_type_symbol)));
cdecl.add_declarator (new CCodeVariableDeclarator ("this"));
vblock.add_statement (cdecl);
- var type_get = new CCodeFunctionCall (new CCodeIdentifier (current_class.get_lower_case_cname () + "_type_get"));
+ var type_get = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_lower_case_name (current_class) + "_type_get"));
foreach (var type_param in current_class.get_type_parameters ()) {
type_get.add_argument (new CCodeIdentifier ("%s_type".printf (type_param.name.down ())));
}
var alloc_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_object_alloc"));
alloc_call.add_argument (type_get);
- vblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("this"), new CCodeCastExpression (alloc_call, "%s *".printf (current_type_symbol.get_cname ())))));
+ vblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("this"), new CCodeCastExpression (alloc_call, "%s *".printf (get_ccode_name (current_type_symbol))))));
// allocate memory for fields of generic types
// this is only a temporary measure until this can be allocated inline at the end of the instance
var calloc_call = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
calloc_call.add_argument (new CCodeConstant ("1"));
calloc_call.add_argument (type_get_value_size);
- var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (current_class.get_upper_case_cname (null))));
+ var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (current_class, null))));
priv_call.add_argument (new CCodeIdentifier ("this"));
vblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (priv_call, f.name), calloc_call)));
}
- var vcall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname ()));
+ var vcall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m)));
vcall.add_argument (new CCodeIdentifier ("this"));
vblock.add_statement (new CCodeExpressionStatement (vcall));
instance_param = new CCodeParameter ("_data%d_".printf (block_id), "Block%dData*".printf (block_id));
} else if (m.parent_symbol is Class && m is CreationMethod) {
if (vcall == null) {
- instance_param = new CCodeParameter ("this", ((Class) m.parent_symbol).get_cname () + "*");
+ instance_param = new CCodeParameter ("this", get_ccode_name (((Class) m.parent_symbol)) + "*");
}
} else if (m.binding == MemberBinding.INSTANCE || (m.parent_symbol is Struct && m is CreationMethod)) {
TypeSymbol parent_type = find_parent_type (m);
if (m.base_interface_method != null && !m.is_abstract && !m.is_virtual) {
var base_type = new ObjectType ((Interface) m.base_interface_method.parent_symbol);
- instance_param = new CCodeParameter ("this", base_type.get_cname ());
+ instance_param = new CCodeParameter ("this", get_ccode_name (base_type));
} else if (m.overrides) {
var base_type = new ObjectType ((Class) m.base_method.parent_symbol);
generate_type_declaration (base_type, decl_space);
- instance_param = new CCodeParameter ("this", base_type.get_cname ());
+ instance_param = new CCodeParameter ("this", get_ccode_name (base_type));
} else {
if (m.parent_symbol is Struct && m is CreationMethod) {
var st = (Struct) m.parent_symbol;
if (st.is_boolean_type () || st.is_integer_type () || st.is_floating_type ()) {
// use return value
} else {
- instance_param = new CCodeParameter ("*this", this_type.get_cname ());
+ instance_param = new CCodeParameter ("*this", get_ccode_name (this_type));
}
} else {
- instance_param = new CCodeParameter ("this", this_type.get_cname ());
+ instance_param = new CCodeParameter ("this", get_ccode_name (this_type));
}
}
}
foreach (Parameter param in m.get_parameters ()) {
CCodeParameter cparam;
if (!param.ellipsis) {
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
generate_type_declaration (param.variable_type, decl_space);
}
if (m.parent_symbol is Class && m is CreationMethod && vcall != null) {
- func.return_type = ((Class) m.parent_symbol).get_cname () + "*";
+ func.return_type = get_ccode_name (((Class) m.parent_symbol)) + "*";
} else {
if (m.return_type is GenericType) {
func.add_parameter (new CCodeParameter ("result", "void *"));
} else {
var st = m.parent_symbol as Struct;
if (m is CreationMethod && st != null && (st.is_boolean_type () || st.is_integer_type () || st.is_floating_type ())) {
- func.return_type = st.get_cname ();
+ func.return_type = get_ccode_name (st);
} else {
- func.return_type = m.return_type.get_cname ();
+ func.return_type = get_ccode_name (m.return_type);
}
}
value_size.add_argument (get_type_id_expression (array_type.element_type));
set_cvalue (expr, new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeCastExpression (ccontainer, "char*"), new CCodeBinaryExpression (CCodeBinaryOperator.MUL, value_size, cindex)));
} else {
- set_cvalue (expr, new CCodeElementAccess (new CCodeCastExpression (ccontainer, "%s*".printf (array_type.element_type.get_cname ())), cindex));
+ set_cvalue (expr, new CCodeElementAccess (new CCodeCastExpression (ccontainer, "%s*".printf (get_ccode_name (array_type.element_type))), cindex));
}
}
foreach (var field in static_fields) {
field.initializer.emit (this);
- var lhs = new CCodeIdentifier (field.get_cname ());
+ var lhs = new CCodeIdentifier (get_ccode_name (field));
var rhs = get_cvalue (field.initializer);
ccode.add_assignment (lhs, rhs);
public abstract class Vala.DovaStructModule : DovaBaseModule {
public override void generate_struct_declaration (Struct st, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, st, st.get_cname ())) {
+ if (add_symbol_declaration (decl_space, st, get_ccode_name (st))) {
return;
}
if (st.base_struct != null) {
generate_struct_declaration (st.base_struct, decl_space);
- decl_space.add_type_declaration (new CCodeTypeDefinition (st.base_struct.get_cname (), new CCodeVariableDeclarator (st.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition (get_ccode_name (st.base_struct), new CCodeVariableDeclarator (get_ccode_name (st))));
return;
}
return;
}
- var instance_struct = new CCodeStruct ("_%s".printf (st.get_cname ()));
+ var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st)));
foreach (Field f in st.get_fields ()) {
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
if (f.binding == MemberBinding.INSTANCE) {
generate_type_declaration (f.variable_type, decl_space);
- instance_struct.add_field (field_ctype, f.get_cname () + f.variable_type.get_cdeclarator_suffix ());
+ instance_struct.add_field (field_ctype, get_ccode_name (f) + f.variable_type.get_cdeclarator_suffix ());
}
}
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (st.get_cname ()), new CCodeVariableDeclarator (st.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (st)), new CCodeVariableDeclarator (get_ccode_name (st))));
decl_space.add_type_definition (instance_struct);
}
public override void generate_struct_declaration (Struct st, CCodeFile decl_space) {
base.generate_struct_declaration (st, decl_space);
- if (add_symbol_declaration (decl_space, st, st.get_copy_function ())) {
+ if (add_symbol_declaration (decl_space, st, get_ccode_copy_function (st))) {
return;
}
generate_class_declaration (type_class, decl_space);
- var type_fun = new CCodeFunction ("%s_type_get".printf (st.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (st)), "DovaType *");
if (st.is_internal_symbol ()) {
type_fun.modifiers = CCodeModifiers.STATIC;
}
decl_space.add_function_declaration (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (st.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (st)));
type_init_fun.add_parameter (new CCodeParameter ("type", "DovaType *"));
if (st.is_internal_symbol ()) {
type_init_fun.modifiers = CCodeModifiers.STATIC;
}
decl_space.add_function_declaration (type_init_fun);
- var function = new CCodeFunction (st.get_copy_function (), "void");
+ var function = new CCodeFunction (get_ccode_copy_function (st), "void");
if (st.is_internal_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("dest", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (st) + "*"));
function.add_parameter (new CCodeParameter ("dest_index", "intptr_t"));
- function.add_parameter (new CCodeParameter ("src", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("src", get_ccode_name (st) + "*"));
function.add_parameter (new CCodeParameter ("src_index", "intptr_t"));
decl_space.add_function_declaration (function);
base.visit_struct (st);
var cdecl = new CCodeDeclaration ("intptr_t");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (st.get_lower_case_cname ()), new CCodeConstant ("0")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_%s_object_offset".printf (get_ccode_lower_case_name (st)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
- string macro = "((%s *) (((char *) o) + _%s_object_offset))".printf (st.get_cname (), st.get_lower_case_cname ());
- cfile.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (st.get_upper_case_cname (null)), macro));
+ string macro = "((%s *) (((char *) o) + _%s_object_offset))".printf (get_ccode_name (st), get_ccode_lower_case_name (st));
+ cfile.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (get_ccode_upper_case_name (st, null)), macro));
cdecl = new CCodeDeclaration ("DovaType *");
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (st.get_lower_case_cname ()), new CCodeConstant ("NULL")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s_type".printf (get_ccode_lower_case_name (st)), new CCodeConstant ("NULL")));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_type_member_declaration (cdecl);
- var type_fun = new CCodeFunction ("%s_type_get".printf (st.get_lower_case_cname ()), "DovaType *");
+ var type_fun = new CCodeFunction ("%s_type_get".printf (get_ccode_lower_case_name (st)), "DovaType *");
type_fun.block = new CCodeBlock ();
var type_init_block = new CCodeBlock ();
calloc_call.add_argument (new CCodeConstant ("1"));
calloc_call.add_argument (base_type_size);
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())), calloc_call)));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))), calloc_call)));
generate_class_declaration ((Class) object_class, cfile);
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeCastExpression (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())), "DovaObject *"), "type"), new CCodeFunctionCall (new CCodeIdentifier ("dova_type_type_get")))));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeCastExpression (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))), "DovaObject *"), "type"), new CCodeFunctionCall (new CCodeIdentifier ("dova_type_type_get")))));
var set_base_type = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_base_type"));
- set_base_type.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ set_base_type.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
set_base_type.add_argument (base_type);
type_init_block.add_statement (new CCodeExpressionStatement (set_base_type));
var base_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_get_object_size"));
base_size.add_argument (base_type);
- type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_%s_object_offset".printf (st.get_lower_case_cname ())), base_size)));
+ type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_%s_object_offset".printf (get_ccode_lower_case_name (st))), base_size)));
var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (st.get_cname ()));
+ sizeof_call.add_argument (new CCodeIdentifier (get_ccode_name (st)));
var set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_object_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
set_size.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, base_size, sizeof_call));
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
set_size.add_argument (sizeof_call);
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_type_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
set_size.add_argument (base_type_size);
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
- var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (st.get_lower_case_cname ())));
- type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (get_ccode_lower_case_name (st))));
+ type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
type_init_block.add_statement (new CCodeExpressionStatement (type_init_call));
// workaround: set value_size again as it is currently overwritten by dova_object_type_init
set_size = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_size"));
- set_size.add_argument (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ())));
+ set_size.add_argument (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st))));
set_size.add_argument (sizeof_call);
type_init_block.add_statement (new CCodeExpressionStatement (set_size));
- type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ()))), type_init_block));
+ type_fun.block.add_statement (new CCodeIfStatement (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st)))), type_init_block));
- type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (st.get_lower_case_cname ()))));
+ type_fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("%s_type".printf (get_ccode_lower_case_name (st)))));
cfile.add_function (type_fun);
- var type_init_fun = new CCodeFunction ("%s_type_init".printf (st.get_lower_case_cname ()));
+ var type_init_fun = new CCodeFunction ("%s_type_init".printf (get_ccode_lower_case_name (st)));
type_init_fun.add_parameter (new CCodeParameter ("type", "DovaType *"));
type_init_fun.block = new CCodeBlock ();
var value_copy_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_copy"));
value_copy_call.add_argument (new CCodeIdentifier ("type"));
- value_copy_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_copy".printf (st.get_lower_case_cname ())), "void (*)(void *, intptr_t, void *, intptr_t)"));
+ value_copy_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_copy".printf (get_ccode_lower_case_name (st))), "void (*)(void *, intptr_t, void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_copy_call));
if (st.scope.lookup ("equals") is Method) {
- var value_equals_fun = new CCodeFunction ("%s_value_equals".printf (st.get_lower_case_cname ()), "bool");
+ var value_equals_fun = new CCodeFunction ("%s_value_equals".printf (get_ccode_lower_case_name (st)), "bool");
value_equals_fun.modifiers = CCodeModifiers.STATIC;
- value_equals_fun.add_parameter (new CCodeParameter ("value", st.get_cname () + "*"));
+ value_equals_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (st) + "*"));
value_equals_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
- value_equals_fun.add_parameter (new CCodeParameter ("other", st.get_cname () + "*"));
+ value_equals_fun.add_parameter (new CCodeParameter ("other", get_ccode_name (st) + "*"));
value_equals_fun.add_parameter (new CCodeParameter ("other_index", "intptr_t"));
value_equals_fun.block = new CCodeBlock ();
var val = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("value"), new CCodeIdentifier ("value_index"));
var other = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("other"), new CCodeIdentifier ("other_index"));
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_equals".printf (st.get_lower_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_equals".printf (get_ccode_lower_case_name (st))));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, val));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, other));
value_equals_fun.block.add_statement (new CCodeReturnStatement (ccall));
var value_equals_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_equals"));
value_equals_call.add_argument (new CCodeIdentifier ("type"));
- value_equals_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_equals".printf (st.get_lower_case_cname ())), "bool (*)(void *, intptr_t, void *, intptr_t)"));
+ value_equals_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_equals".printf (get_ccode_lower_case_name (st))), "bool (*)(void *, intptr_t, void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_equals_call));
}
if (st.scope.lookup ("hash") is Method) {
- var value_hash_fun = new CCodeFunction ("%s_value_hash".printf (st.get_lower_case_cname ()), "uintptr_t");
+ var value_hash_fun = new CCodeFunction ("%s_value_hash".printf (get_ccode_lower_case_name (st)), "uintptr_t");
value_hash_fun.modifiers = CCodeModifiers.STATIC;
- value_hash_fun.add_parameter (new CCodeParameter ("value", st.get_cname () + "*"));
+ value_hash_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (st) + "*"));
value_hash_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_hash_fun.block = new CCodeBlock ();
var val = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("value"), new CCodeIdentifier ("value_index"));
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_hash".printf (st.get_lower_case_cname ())));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_hash".printf (get_ccode_lower_case_name (st))));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, val));
value_hash_fun.block.add_statement (new CCodeReturnStatement (ccall));
cfile.add_function (value_hash_fun);
var value_hash_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_hash"));
value_hash_call.add_argument (new CCodeIdentifier ("type"));
- value_hash_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_hash".printf (st.get_lower_case_cname ())), "uintptr_t (*)(void *, intptr_t)"));
+ value_hash_call.add_argument (new CCodeCastExpression (new CCodeIdentifier ("%s_value_hash".printf (get_ccode_lower_case_name (st))), "uintptr_t (*)(void *, intptr_t)"));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_hash_call));
}
// generate method to box values
- var value_to_any_fun = new CCodeFunction ("%s_value_to_any".printf (st.get_lower_case_cname ()), "DovaObject*");
+ var value_to_any_fun = new CCodeFunction ("%s_value_to_any".printf (get_ccode_lower_case_name (st)), "DovaObject*");
value_to_any_fun.modifiers = CCodeModifiers.STATIC;
value_to_any_fun.add_parameter (new CCodeParameter ("value", "void *"));
value_to_any_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_to_any_fun.block = new CCodeBlock ();
var alloc_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_object_alloc"));
- alloc_call.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (st.get_lower_case_cname ()))));
+ alloc_call.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (get_ccode_lower_case_name (st)))));
cdecl = new CCodeDeclaration ("DovaObject *");
cdecl.add_declarator (new CCodeVariableDeclarator ("result", alloc_call));
value_to_any_fun.block.add_statement (cdecl);
- var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (st.get_upper_case_cname (null))));
+ var priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (st, null))));
priv_call.add_argument (new CCodeIdentifier ("result"));
- var copy_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_copy".printf (st.get_lower_case_cname ())));
+ var copy_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_copy".printf (get_ccode_lower_case_name (st))));
copy_call.add_argument (priv_call);
copy_call.add_argument (new CCodeConstant ("0"));
copy_call.add_argument (new CCodeIdentifier ("value"));
var value_to_any_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_to_any"));
value_to_any_call.add_argument (new CCodeIdentifier ("type"));
- value_to_any_call.add_argument (new CCodeIdentifier ("%s_value_to_any".printf (st.get_lower_case_cname ())));
+ value_to_any_call.add_argument (new CCodeIdentifier ("%s_value_to_any".printf (get_ccode_lower_case_name (st))));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_to_any_call));
// generate method to unbox values
- var value_from_any_fun = new CCodeFunction ("%s_value_from_any".printf (st.get_lower_case_cname ()));
+ var value_from_any_fun = new CCodeFunction ("%s_value_from_any".printf (get_ccode_lower_case_name (st)));
value_from_any_fun.modifiers = CCodeModifiers.STATIC;
value_from_any_fun.add_parameter (new CCodeParameter ("any_", "any *"));
- value_from_any_fun.add_parameter (new CCodeParameter ("value", st.get_cname () + "*"));
+ value_from_any_fun.add_parameter (new CCodeParameter ("value", get_ccode_name (st) + "*"));
value_from_any_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
value_from_any_fun.block = new CCodeBlock ();
- priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (st.get_upper_case_cname (null))));
+ priv_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (st, null))));
priv_call.add_argument (new CCodeIdentifier ("any_"));
- copy_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_copy".printf (st.get_lower_case_cname ())));
+ copy_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_copy".printf (get_ccode_lower_case_name (st))));
copy_call.add_argument (new CCodeIdentifier ("value"));
copy_call.add_argument (new CCodeIdentifier ("value_index"));
copy_call.add_argument (priv_call);
var value_from_any_call = new CCodeFunctionCall (new CCodeIdentifier ("dova_type_set_value_from_any"));
value_from_any_call.add_argument (new CCodeIdentifier ("type"));
- value_from_any_call.add_argument (new CCodeIdentifier ("%s_value_from_any".printf (st.get_lower_case_cname ())));
+ value_from_any_call.add_argument (new CCodeIdentifier ("%s_value_from_any".printf (get_ccode_lower_case_name (st))));
type_init_fun.block.add_statement (new CCodeExpressionStatement (value_from_any_call));
cfile.add_function (type_init_fun);
}
void add_struct_copy_function (Struct st) {
- var function = new CCodeFunction (st.get_copy_function (), "void");
+ var function = new CCodeFunction (get_ccode_copy_function (st), "void");
if (st.is_internal_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("dest", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("dest", get_ccode_name (st) + "*"));
function.add_parameter (new CCodeParameter ("dest_index", "intptr_t"));
- function.add_parameter (new CCodeParameter ("src", st.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("src", get_ccode_name (st) + "*"));
function.add_parameter (new CCodeParameter ("src_index", "intptr_t"));
var cblock = new CCodeBlock ();
public class Vala.GAsyncModule : GSignalModule {
CCodeStruct generate_data_struct (Method m) {
- string dataname = Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data";
+ string dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
var data = new CCodeStruct ("_" + dataname);
data.add_field ("int", "_state_");
if (m.binding == MemberBinding.INSTANCE) {
var type_sym = (TypeSymbol) m.parent_symbol;
if (type_sym is ObjectTypeSymbol) {
- data.add_field (type_sym.get_cname () + "*", "self");
+ data.add_field (get_ccode_name (type_sym) + "*", "self");
} else {
- data.add_field (type_sym.get_cname (), "self");
+ data.add_field (get_ccode_name (type_sym), "self");
}
}
var param_type = param.variable_type.copy ();
param_type.value_owned = true;
- data.add_field (param_type.get_cname (), get_variable_cname (param.name));
+ data.add_field (get_ccode_name (param_type), get_variable_cname (param.name));
if (param.variable_type is ArrayType) {
var array_type = (ArrayType) param.variable_type;
- if (!param.no_array_length) {
+ if (get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
data.add_field ("gint", get_parameter_array_length_cname (param, dim));
}
}
if (!(m.return_type is VoidType)) {
- data.add_field (m.return_type.get_cname (), "result");
+ data.add_field (get_ccode_name (m.return_type), "result");
if (m.return_type is ArrayType) {
var array_type = (ArrayType) m.return_type;
- if (!m.no_array_length) {
+ if (get_ccode_array_length (m)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
data.add_field ("gint", get_array_length_cname ("result", dim));
}
}
CCodeFunction generate_free_function (Method m) {
- var dataname = Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data";
+ var dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
- var freefunc = new CCodeFunction (m.get_real_cname () + "_data_free", "void");
+ var freefunc = new CCodeFunction (get_ccode_real_name (m) + "_data_free", "void");
freefunc.modifiers = CCodeModifiers.STATIC;
freefunc.add_parameter (new CCodeParameter ("_data", "gpointer"));
void generate_async_function (Method m) {
push_context (new EmitContext ());
- var dataname = Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data";
- var asyncfunc = new CCodeFunction (m.get_real_cname (), "void");
+ var dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
+ var asyncfunc = new CCodeFunction (get_ccode_real_name (m), "void");
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
cparam_map.set (get_param_pos (-1), new CCodeParameter ("_callback_", "GAsyncReadyCallback"));
var self_target_type = new ObjectType (type_symbol);
var cself = get_cvalue_ (transform_value (new GLibValue (base_expression_type, new CCodeIdentifier ("base"), true), self_target_type, m));
- ccode.add_declaration ("%s *".printf (type_symbol.get_cname ()), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (type_symbol)), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), cself);
}
create_result.add_argument (new CCodeIdentifier ("_callback_"));
create_result.add_argument (new CCodeIdentifier ("_user_data_"));
- create_result.add_argument (new CCodeIdentifier (m.get_real_cname ()));
+ create_result.add_argument (new CCodeIdentifier (get_ccode_real_name (m)));
ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, "_async_result"), create_result);
var set_op_res_call = new CCodeFunctionCall (new CCodeIdentifier ("g_simple_async_result_set_op_res_gpointer"));
set_op_res_call.add_argument (new CCodeMemberAccess.pointer (data_var, "_async_result"));
set_op_res_call.add_argument (data_var);
- set_op_res_call.add_argument (new CCodeIdentifier (m.get_real_cname () + "_data_free"));
+ set_op_res_call.add_argument (new CCodeIdentifier (get_ccode_real_name (m) + "_data_free"));
ccode.add_expression (set_op_res_call);
if (m.binding == MemberBinding.INSTANCE) {
ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, destroy_func), new CCodeIdentifier (destroy_func));
}
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname () + "_co"));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m) + "_co"));
ccall.add_argument (data_var);
ccode.add_expression (ccall);
public override void generate_method_declaration (Method m, CCodeFile decl_space) {
if (m.coroutine) {
- if (add_symbol_declaration (decl_space, m, m.get_cname ())) {
+ if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
return;
}
- var asyncfunc = new CCodeFunction (m.get_cname (), "void");
+ var asyncfunc = new CCodeFunction (get_ccode_name (m), "void");
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
cparam_map.set (get_param_pos (-1), new CCodeParameter ("_callback_", "GAsyncReadyCallback"));
cparam_map.set (get_param_pos (-0.9), new CCodeParameter ("_user_data_", "gpointer"));
decl_space.add_function_declaration (asyncfunc);
- var finishfunc = new CCodeFunction (m.get_finish_cname ());
+ var finishfunc = new CCodeFunction (get_ccode_finish_name (m));
cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
cparam_map.set (get_param_pos (0.1), new CCodeParameter ("_res_", "GAsyncResult*"));
void generate_finish_function (Method m) {
push_context (new EmitContext ());
- string dataname = Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data";
+ string dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
- var finishfunc = new CCodeFunction (m.get_finish_real_cname ());
+ var finishfunc = new CCodeFunction (get_ccode_finish_real_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
var return_type = m.return_type;
if (!(return_type is VoidType) && !return_type.is_real_non_null_struct_type ()) {
- ccode.add_declaration (m.return_type.get_cname (), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator ("result"));
}
var data_var = new CCodeIdentifier ("_data_");
ccode.add_assignment (new CCodeIdentifier ("result"), new CCodeMemberAccess.pointer (data_var, "result"));
if (return_type is ArrayType) {
var array_type = (ArrayType) return_type;
- if (!m.no_array_length) {
+ if (get_ccode_array_length (m)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier (get_array_length_cname ("result", dim))), new CCodeMemberAccess.pointer (data_var, get_array_length_cname ("result", dim)));
}
public override string generate_ready_function (Method m) {
// generate ready callback handler
- var dataname = Symbol.lower_case_to_camel_case (m.get_cname ()) + "Data";
+ var dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
- var readyfunc = new CCodeFunction (m.get_cname () + "_ready", "void");
+ var readyfunc = new CCodeFunction (get_ccode_name (m) + "_ready", "void");
if (!add_wrapper (readyfunc.name)) {
// wrapper already defined
ccode.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), "_source_object_"), new CCodeIdentifier ("source_object"));
ccode.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), "_res_"), new CCodeIdentifier ("_res_"));
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_real_cname () + "_co"));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m) + "_co"));
ccall.add_argument (new CCodeIdentifier ("_data_"));
ccode.add_expression (ccall);
}
// add vfunc field to the type struct
- var vdeclarator = new CCodeFunctionDeclarator (m.vfunc_name);
+ var vdeclarator = new CCodeFunctionDeclarator (get_ccode_vfunc_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
generate_cparameters (m, decl_space, cparam_map, new CCodeFunction ("fake"), vdeclarator, null, null, 1);
type_struct.add_declaration (vdecl);
// add vfunc field to the type struct
- vdeclarator = new CCodeFunctionDeclarator (m.get_finish_vfunc_name ());
+ vdeclarator = new CCodeFunctionDeclarator (get_ccode_finish_vfunc_name (m));
cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
generate_cparameters (m, decl_space, cparam_map, new CCodeFunction ("fake"), vdeclarator, null, null, 2);
- vdecl = new CCodeDeclaration (creturn_type.get_cname ());
+ vdecl = new CCodeDeclaration (get_ccode_name (creturn_type));
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
}
public override void generate_dynamic_method_wrapper (DynamicMethod method) {
var dynamic_method = (DynamicMethod) method;
- var func = new CCodeFunction (method.get_cname ());
+ var func = new CCodeFunction (get_ccode_name (method));
func.modifiers = CCodeModifiers.STATIC;
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
}
}
- string lower_cname = main_iface.get_lower_case_cprefix () + "proxy";
+ string lower_cname = get_ccode_lower_case_prefix (main_iface) + "proxy";
- var proxy_iface_init = new CCodeFunction (lower_cname + "_" + iface.get_lower_case_cprefix () + "interface_init", "void");
- proxy_iface_init.add_parameter (new CCodeParameter ("iface", iface.get_cname () + "Iface*"));
+ var proxy_iface_init = new CCodeFunction (lower_cname + "_" + get_ccode_lower_case_prefix (iface) + "interface_init", "void");
+ proxy_iface_init.add_parameter (new CCodeParameter ("iface", get_ccode_name (iface) + "Iface*"));
push_function (proxy_iface_init);
continue;
}
- var vfunc_entry = new CCodeMemberAccess.pointer (new CCodeIdentifier ("iface"), m.vfunc_name);
+ var vfunc_entry = new CCodeMemberAccess.pointer (new CCodeIdentifier ("iface"), get_ccode_vfunc_name (m));
if (!m.coroutine) {
ccode.add_assignment (vfunc_entry, new CCodeIdentifier (generate_dbus_proxy_method (main_iface, iface, m)));
} else {
ccode.add_assignment (vfunc_entry, new CCodeIdentifier (generate_async_dbus_proxy_method (main_iface, iface, m)));
- vfunc_entry = new CCodeMemberAccess.pointer (new CCodeIdentifier ("iface"), m.get_finish_vfunc_name ());
+ vfunc_entry = new CCodeMemberAccess.pointer (new CCodeIdentifier ("iface"), get_ccode_finish_vfunc_name (m));
ccode.add_assignment (vfunc_entry, new CCodeIdentifier (generate_finish_dbus_proxy_method (main_iface, iface, m)));
}
}
}
result += "G_IMPLEMENT_INTERFACE (%s, %sproxy_%sinterface_init) ".printf (
- iface.get_upper_case_cname ("TYPE_"),
- main_iface.get_lower_case_cprefix (),
- iface.get_lower_case_cprefix ());
+ get_ccode_upper_case_name (iface, "TYPE_"),
+ get_ccode_lower_case_prefix (main_iface),
+ get_ccode_lower_case_prefix (iface));
return result;
}
return;
}
- string get_type_name = "%sproxy_get_type".printf (iface.get_lower_case_cprefix ());
+ string get_type_name = "%sproxy_get_type".printf (get_ccode_lower_case_prefix (iface));
if (add_symbol_declaration (decl_space, iface, get_type_name)) {
return;
decl_space.add_type_declaration (new CCodeNewline ());
var macro = "(%s ())".printf (get_type_name);
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_PROXY".printf (iface.get_type_id ()), macro));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_PROXY".printf (get_ccode_type_id (iface)), macro));
// declare proxy_get_type function
var proxy_get_type = new CCodeFunction (get_type_name, "GType");
cfile.add_include ("gio/gio.h");
// create proxy class
- string cname = iface.get_cname () + "Proxy";
- string lower_cname = iface.get_lower_case_cprefix () + "proxy";
+ string cname = get_ccode_name (iface) + "Proxy";
+ string lower_cname = get_ccode_lower_case_prefix (iface) + "proxy";
cfile.add_type_declaration (new CCodeTypeDefinition ("GDBusProxy", new CCodeVariableDeclarator (cname)));
cfile.add_type_declaration (new CCodeTypeDefinition ("GDBusProxyClass", new CCodeVariableDeclarator (cname + "Class")));
public override void visit_method_call (MethodCall expr) {
var mtype = expr.call.value_type as MethodType;
- bool bus_get_proxy_async = (mtype != null && mtype.method_symbol.get_cname () == "g_bus_get_proxy");
- bool bus_get_proxy_sync = (mtype != null && mtype.method_symbol.get_cname () == "g_bus_get_proxy_sync");
- bool conn_get_proxy_async = (mtype != null && mtype.method_symbol.get_cname () == "g_dbus_connection_get_proxy");
- bool conn_get_proxy_sync = (mtype != null && mtype.method_symbol.get_cname () == "g_dbus_connection_get_proxy_sync");
+ bool bus_get_proxy_async = (mtype != null && get_ccode_name (mtype.method_symbol) == "g_bus_get_proxy");
+ bool bus_get_proxy_sync = (mtype != null && get_ccode_name (mtype.method_symbol) == "g_bus_get_proxy_sync");
+ bool conn_get_proxy_async = (mtype != null && get_ccode_name (mtype.method_symbol) == "g_dbus_connection_get_proxy");
+ bool conn_get_proxy_sync = (mtype != null && get_ccode_name (mtype.method_symbol) == "g_dbus_connection_get_proxy_sync");
if (!bus_get_proxy_async && !bus_get_proxy_sync && !conn_get_proxy_async && !conn_get_proxy_sync) {
base.visit_method_call (expr);
return;
return;
}
- proxy_type = new CCodeIdentifier ("%s_PROXY".printf (iface.get_type_id ()));
+ proxy_type = new CCodeIdentifier ("%s_PROXY".printf (get_ccode_type_id (iface)));
dbus_iface_name = new CCodeConstant ("\"%s\"".printf (get_dbus_name (iface)));
} else {
// use runtime type information for generic methods
}
string generate_dbus_signal_handler (Signal sig, ObjectTypeSymbol sym) {
- string wrapper_name = "_dbus_handle_%s_%s".printf (sym.get_lower_case_cname (), sig.get_cname ());
+ string wrapper_name = "_dbus_handle_%s_%s".printf (get_ccode_lower_case_name (sym), get_ccode_name (sig));
var function = new CCodeFunction (wrapper_name);
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", sym.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (sym) + "*"));
function.add_parameter (new CCodeParameter ("parameters", "GVariant*"));
push_function (function);
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_emit_by_name"));
ccall.add_argument (new CCodeIdentifier ("self"));
- ccall.add_argument (sig.get_canonical_cconstant ());
+ ccall.add_argument (get_signal_canonical_constant (sig));
foreach (Parameter param in sig.get_parameters ()) {
var param_name = get_variable_cname (param.name);
var owned_type = param.variable_type.copy ();
owned_type.value_owned = true;
- ccode.add_declaration (owned_type.get_cname (), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
+ ccode.add_declaration (get_ccode_name (owned_type), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
var st = param.variable_type.data_type as Struct;
if (st != null && !st.is_simple_type ()) {
}
void generate_signal_handler_function (ObjectTypeSymbol sym) {
- var cfunc = new CCodeFunction (sym.get_lower_case_cprefix () + "proxy_g_signal", "void");
+ var cfunc = new CCodeFunction (get_ccode_lower_case_prefix (sym) + "proxy_g_signal", "void");
cfunc.add_parameter (new CCodeParameter ("proxy", "GDBusProxy*"));
cfunc.add_parameter (new CCodeParameter ("sender_name", "const gchar*"));
cfunc.add_parameter (new CCodeParameter ("signal_name", "const gchar*"));
}
var ccall = new CCodeFunctionCall (new CCodeIdentifier (generate_dbus_signal_handler (sig, sym)));
- ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("proxy"), sym.get_cname () + "*"));
+ ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("proxy"), get_ccode_name (sym) + "*"));
ccall.add_argument (new CCodeIdentifier ("parameters"));
ccode.add_expression (ccall);
foreach (var error_type in m.get_error_types ()) {
var errtype = (ErrorType) error_type;
if (errtype.error_domain != null) {
- ccode.add_expression (new CCodeIdentifier (errtype.error_domain.get_upper_case_cname ()));
+ ccode.add_expression (new CCodeIdentifier (get_ccode_upper_case_name (errtype.error_domain)));
}
}
foreach (Parameter param in m.get_parameters ()) {
if (param.direction == ParameterDirection.OUT) {
- ccode.add_declaration (param.variable_type.get_cname (), new CCodeVariableDeclarator ("_vala_" + param.name));
+ ccode.add_declaration (get_ccode_name (param.variable_type), new CCodeVariableDeclarator ("_vala_" + param.name));
var array_type = param.variable_type as ArrayType;
var target = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("result"));
receive_dbus_value (m.return_type, new CCodeIdentifier ("_reply_message"), new CCodeIdentifier ("_reply_iter"), target, m);
} else {
- ccode.add_declaration (m.return_type.get_cname (), new CCodeVariableDeclarator ("_result"));
+ ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator ("_result"));
var array_type = m.return_type as ArrayType;
}
string generate_dbus_proxy_method (Interface main_iface, Interface iface, Method m) {
- string proxy_name = "%sproxy_%s".printf (main_iface.get_lower_case_cprefix (), m.name);
+ string proxy_name = "%sproxy_%s".printf (get_ccode_lower_case_prefix (main_iface), m.name);
string dbus_iface_name = get_dbus_name (iface);
}
string generate_async_dbus_proxy_method (Interface main_iface, Interface iface, Method m) {
- string proxy_name = "%sproxy_%s_async".printf (main_iface.get_lower_case_cprefix (), m.name);
+ string proxy_name = "%sproxy_%s_async".printf (get_ccode_lower_case_prefix (main_iface), m.name);
string dbus_iface_name = get_dbus_name (iface);
}
string generate_finish_dbus_proxy_method (Interface main_iface, Interface iface, Method m) {
- string proxy_name = "%sproxy_%s_finish".printf (main_iface.get_lower_case_cprefix (), m.name);
+ string proxy_name = "%sproxy_%s_finish".printf (get_ccode_lower_case_prefix (main_iface), m.name);
var function = new CCodeFunction (proxy_name);
function.modifiers = CCodeModifiers.STATIC;
}
string generate_dbus_proxy_property_get (Interface main_iface, Interface iface, Property prop) {
- string proxy_name = "%sdbus_proxy_get_%s".printf (main_iface.get_lower_case_cprefix (), prop.name);
+ string proxy_name = "%sdbus_proxy_get_%s".printf (get_ccode_lower_case_prefix (main_iface), prop.name);
string dbus_iface_name = get_dbus_name (iface);
var function = new CCodeFunction (proxy_name);
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", "%s*".printf (iface.get_cname ())));
+ function.add_parameter (new CCodeParameter ("self", "%s*".printf (get_ccode_name (iface))));
if (prop.property_type.is_real_non_null_struct_type ()) {
- function.add_parameter (new CCodeParameter ("result", "%s*".printf (prop.get_accessor.value_type.get_cname ())));
+ function.add_parameter (new CCodeParameter ("result", "%s*".printf (get_ccode_name (prop.get_accessor.value_type))));
} else {
if (array_type != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
}
}
- function.return_type = prop.get_accessor.value_type.get_cname ();
+ function.return_type = get_ccode_name (prop.get_accessor.value_type);
}
push_function (function);
var result = deserialize_expression (prop.get_accessor.value_type, new CCodeIdentifier ("_inner_reply"), target);
ccode.add_assignment (target, result);
} else {
- ccode.add_declaration (prop.get_accessor.value_type.get_cname (), new CCodeVariableDeclarator ("_result"));
+ ccode.add_declaration (get_ccode_name (prop.get_accessor.value_type), new CCodeVariableDeclarator ("_result"));
if (array_type != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
}
string generate_dbus_proxy_property_set (Interface main_iface, Interface iface, Property prop) {
- string proxy_name = "%sdbus_proxy_set_%s".printf (main_iface.get_lower_case_cprefix (), prop.name);
+ string proxy_name = "%sdbus_proxy_set_%s".printf (get_ccode_lower_case_prefix (main_iface), prop.name);
string dbus_iface_name = get_dbus_name (iface);
var function = new CCodeFunction (proxy_name);
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", "%s*".printf (iface.get_cname ())));
+ function.add_parameter (new CCodeParameter ("self", "%s*".printf (get_ccode_name (iface))));
if (prop.property_type.is_real_non_null_struct_type ()) {
- function.add_parameter (new CCodeParameter ("value", "%s*".printf (prop.set_accessor.value_type.get_cname ())));
+ function.add_parameter (new CCodeParameter ("value", "%s*".printf (get_ccode_name (prop.set_accessor.value_type))));
} else {
- function.add_parameter (new CCodeParameter ("value", prop.set_accessor.value_type.get_cname ()));
+ function.add_parameter (new CCodeParameter ("value", get_ccode_name (prop.set_accessor.value_type)));
if (array_type != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
var quark = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_static_string"));
quark.add_argument (new CCodeConstant ("\"vala-dbus-proxy-type\""));
- var proxy_type = new CCodeIdentifier (sym.get_lower_case_cprefix () + "proxy_get_type");
+ var proxy_type = new CCodeIdentifier (get_ccode_lower_case_prefix (sym) + "proxy_get_type");
var set_qdata = new CCodeFunctionCall (new CCodeIdentifier ("g_type_set_qdata"));
- set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (sym.get_lower_case_cname (null))));
+ set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (get_ccode_lower_case_name (sym, null))));
set_qdata.add_argument (quark);
set_qdata.add_argument (new CCodeCastExpression (proxy_type, "void*"));
quark.add_argument (new CCodeConstant ("\"vala-dbus-interface-name\""));
set_qdata = new CCodeFunctionCall (new CCodeIdentifier ("g_type_set_qdata"));
- set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (sym.get_lower_case_cname (null))));
+ set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (get_ccode_lower_case_name (sym, null))));
set_qdata.add_argument (quark);
set_qdata.add_argument (new CCodeConstant ("\"%s\"".printf (dbus_iface_name)));
public class Vala.GDBusModule : GVariantModule {
public static string? get_dbus_name (TypeSymbol symbol) {
- var dbus = symbol.get_attribute ("DBus");
- if (dbus == null) {
- return null;
- }
-
- return dbus.get_string ("name");
+ return symbol.get_attribute_string ("DBus", "name");
}
public static string get_dbus_name_for_member (Symbol symbol) {
- var dbus = symbol.get_attribute ("DBus");
- if (dbus != null && dbus.has_argument ("name")) {
- return dbus.get_string ("name");
+ var dbus_name = symbol.get_attribute_string ("DBus", "name");
+ if (dbus_name != null) {
+ return dbus_name;
}
return Symbol.lower_case_to_camel_case (symbol.name);
}
public static bool is_dbus_no_reply (Method m) {
- var dbus_attribute = m.get_attribute ("DBus");
- if (dbus_attribute != null
- && dbus_attribute.has_argument ("no_reply")
- && dbus_attribute.get_bool ("no_reply")) {
- return true;
- }
-
- return false;
+ return m.get_attribute_bool ("DBus", "no_reply");
}
public override void visit_error_domain (ErrorDomain edomain) {
}
var error_entry = new CCodeInitializerList ();
- error_entry.append (new CCodeIdentifier (ecode.get_cname ()));
+ error_entry.append (new CCodeIdentifier (get_ccode_name (ecode)));
error_entry.append (new CCodeConstant ("\"%s.%s\"".printf (edomain_dbus_name, ecode_dbus_name)));
error_entries.append (error_entry);
}
var cdecl = new CCodeDeclaration ("const GDBusErrorEntry");
- cdecl.add_declarator (new CCodeVariableDeclarator (edomain.get_lower_case_cname () + "_entries[]", error_entries));
+ cdecl.add_declarator (new CCodeVariableDeclarator (get_ccode_lower_case_name (edomain) + "_entries[]", error_entries));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- string quark_fun_name = edomain.get_lower_case_cprefix () + "quark";
+ string quark_fun_name = get_ccode_lower_case_prefix (edomain) + "quark";
- var cquark_fun = new CCodeFunction (quark_fun_name, gquark_type.data_type.get_cname ());
+ var cquark_fun = new CCodeFunction (quark_fun_name, get_ccode_name (gquark_type.data_type));
push_function (cquark_fun);
- string quark_name = "%squark_volatile".printf (edomain.get_lower_case_cprefix ());
+ string quark_name = "%squark_volatile".printf (get_ccode_lower_case_prefix (edomain));
ccode.add_declaration ("gsize", new CCodeVariableDeclarator (quark_name, new CCodeConstant ("0")), CCodeModifiers.STATIC | CCodeModifiers.VOLATILE);
var register_call = new CCodeFunctionCall (new CCodeIdentifier ("g_dbus_error_register_error_domain"));
- register_call.add_argument (new CCodeConstant ("\"" + edomain.get_lower_case_cname () + "-quark\""));
+ register_call.add_argument (new CCodeConstant ("\"" + get_ccode_lower_case_name (edomain) + "-quark\""));
register_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (quark_name)));
- register_call.add_argument (new CCodeIdentifier (edomain.get_lower_case_cname () + "_entries"));
+ register_call.add_argument (new CCodeIdentifier (get_ccode_lower_case_name (edomain) + "_entries"));
var nentries = new CCodeFunctionCall (new CCodeIdentifier ("G_N_ELEMENTS"));
- nentries.add_argument (new CCodeIdentifier (edomain.get_lower_case_cname () + "_entries"));
+ nentries.add_argument (new CCodeIdentifier (get_ccode_lower_case_name (edomain) + "_entries"));
register_call.add_argument (nentries);
ccode.add_expression (register_call);
}
public static string dbus_result_name (Method m) {
- var dbus_attribute = m.get_attribute ("DBus");
- if (dbus_attribute != null
- && dbus_attribute.has_argument ("result")) {
- var result_name = dbus_attribute.get_string ("result");
- if (result_name != null && result_name != "") {
- return result_name;
- }
+ var dbus_name = m.get_attribute_string ("DBus", "result");
+ if (dbus_name != null && dbus_name != "") {
+ return dbus_name;
}
return "result";
}
string generate_dbus_wrapper (Method m, ObjectTypeSymbol sym, bool ready = false) {
- string wrapper_name = "_dbus_%s".printf (m.get_cname ());
+ string wrapper_name = "_dbus_%s".printf (get_ccode_name (m));
if (m.base_method != null) {
m = m.base_method;
function.modifiers = CCodeModifiers.STATIC;
if (!ready) {
- function.add_parameter (new CCodeParameter ("self", sym.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (sym) + "*"));
function.add_parameter (new CCodeParameter ("parameters", "GVariant*"));
function.add_parameter (new CCodeParameter ("invocation", "GDBusMethodInvocation*"));
} else {
CCodeFunctionCall ccall;
if (!ready) {
- ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (m)));
ccall.add_argument (new CCodeIdentifier ("self"));
} else {
- ccall = new CCodeFunctionCall (new CCodeIdentifier (m.get_finish_cname ()));
- ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("source_object"), sym.get_cname () + "*"));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_finish_name (m)));
+ ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier ("source_object"), get_ccode_name (sym) + "*"));
ccall.add_argument (new CCodeIdentifier ("_res_"));
}
var owned_type = param.variable_type.copy ();
owned_type.value_owned = true;
- ccode.add_declaration (owned_type.get_cname (), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
+ ccode.add_declaration (get_ccode_name (owned_type), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
var array_type = param.variable_type as ArrayType;
if (array_type != null) {
var owned_type = param.variable_type.copy ();
owned_type.value_owned = true;
- ccode.add_declaration (owned_type.get_cname (), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
+ ccode.add_declaration (get_ccode_name (owned_type), new CCodeVariableDeclarator.zero (param_name, default_value_for_type (param.variable_type, true)));
var array_type = param.variable_type as ArrayType;
if (array_type != null) {
if (!(m.return_type is VoidType)) {
if (m.return_type.is_real_non_null_struct_type ()) {
- ccode.add_declaration (m.return_type.get_cname (), new CCodeVariableDeclarator.zero ("result", default_value_for_type (m.return_type, true)));
+ ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator.zero ("result", default_value_for_type (m.return_type, true)));
send_dbus_value (m.return_type, new CCodeIdentifier ("_reply_builder"), new CCodeIdentifier ("result"), m);
ccode.add_expression (destroy_local (local));
}
} else {
- ccode.add_declaration (m.return_type.get_cname (), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator ("result"));
var array_type = m.return_type as ArrayType;
if (array_type != null) {
}
string generate_dbus_signal_wrapper (Signal sig, ObjectTypeSymbol sym, string dbus_iface_name) {
- string wrapper_name = "_dbus_%s_%s".printf (sym.get_lower_case_cname (), sig.get_cname ());
+ string wrapper_name = "_dbus_%s_%s".printf (get_ccode_lower_case_name (sym), get_ccode_name (sig));
var function = new CCodeFunction (wrapper_name, "void");
function.modifiers = CCodeModifiers.STATIC;
}
string generate_dbus_property_get_wrapper (Property prop, ObjectTypeSymbol sym) {
- string wrapper_name = "_dbus_%s".printf (prop.get_accessor.get_cname ());
+ string wrapper_name = "_dbus_%s".printf (get_ccode_name (prop.get_accessor));
var function = new CCodeFunction (wrapper_name, "GVariant*");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", sym.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (sym) + "*"));
push_function (function);
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (prop.get_accessor.get_cname ()));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (prop.get_accessor)));
ccall.add_argument (new CCodeIdentifier ("self"));
if (prop.get_accessor.value_type.is_real_non_null_struct_type ()) {
- ccode.add_declaration (prop.get_accessor.value_type.get_cname (), new CCodeVariableDeclarator.zero ("result", default_value_for_type (prop.get_accessor.value_type, true)));
+ ccode.add_declaration (get_ccode_name (prop.get_accessor.value_type), new CCodeVariableDeclarator.zero ("result", default_value_for_type (prop.get_accessor.value_type, true)));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("result")));
ccode.add_expression (ccall);
} else {
- ccode.add_declaration (prop.get_accessor.value_type.get_cname (), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_ccode_name (prop.get_accessor.value_type), new CCodeVariableDeclarator ("result"));
ccode.add_assignment (new CCodeIdentifier ("result"), ccall);
var array_type = prop.get_accessor.value_type as ArrayType;
}
string generate_dbus_property_set_wrapper (Property prop, ObjectTypeSymbol sym) {
- string wrapper_name = "_dbus_%s".printf (prop.set_accessor.get_cname ());
+ string wrapper_name = "_dbus_%s".printf (get_ccode_name (prop.set_accessor));
var function = new CCodeFunction (wrapper_name);
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("self", sym.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (sym) + "*"));
function.add_parameter (new CCodeParameter ("_value", "GVariant*"));
push_function (function);
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (prop.set_accessor.get_cname ()));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (prop.set_accessor)));
ccall.add_argument (new CCodeIdentifier ("self"));
var owned_type = prop.property_type.copy ();
owned_type.value_owned = true;
- ccode.add_declaration (owned_type.get_cname (), new CCodeVariableDeclarator.zero ("value", default_value_for_type (prop.property_type, true)));
+ ccode.add_declaration (get_ccode_name (owned_type), new CCodeVariableDeclarator.zero ("value", default_value_for_type (prop.property_type, true)));
var st = prop.property_type.data_type as Struct;
if (st != null && !st.is_simple_type ()) {
var connect = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_connect"));
connect.add_argument (new CCodeIdentifier ("object"));
- connect.add_argument (sig.get_canonical_cconstant ());
+ connect.add_argument (get_signal_canonical_constant (sig));
connect.add_argument (new CCodeCastExpression (new CCodeIdentifier (generate_dbus_signal_wrapper (sig, sym, dbus_iface_name)), "GCallback"));
connect.add_argument (new CCodeIdentifier ("data"));
ccode.add_expression (connect);
}
void generate_interface_method_call_function (ObjectTypeSymbol sym) {
- var cfunc = new CCodeFunction (sym.get_lower_case_cprefix () + "dbus_interface_method_call", "void");
+ var cfunc = new CCodeFunction (get_ccode_lower_case_prefix (sym) + "dbus_interface_method_call", "void");
cfunc.add_parameter (new CCodeParameter ("connection", "GDBusConnection*"));
cfunc.add_parameter (new CCodeParameter ("sender", "const gchar*"));
cfunc.add_parameter (new CCodeParameter ("object_path", "const gchar*"));
}
void generate_interface_get_property_function (ObjectTypeSymbol sym) {
- var cfunc = new CCodeFunction (sym.get_lower_case_cprefix () + "dbus_interface_get_property", "GVariant*");
+ var cfunc = new CCodeFunction (get_ccode_lower_case_prefix (sym) + "dbus_interface_get_property", "GVariant*");
cfunc.add_parameter (new CCodeParameter ("connection", "GDBusConnection*"));
cfunc.add_parameter (new CCodeParameter ("sender", "const gchar*"));
cfunc.add_parameter (new CCodeParameter ("object_path", "const gchar*"));
}
void generate_interface_set_property_function (ObjectTypeSymbol sym) {
- var cfunc = new CCodeFunction (sym.get_lower_case_cprefix () + "dbus_interface_set_property", "gboolean");
+ var cfunc = new CCodeFunction (get_ccode_lower_case_prefix (sym) + "dbus_interface_set_property", "gboolean");
cfunc.add_parameter (new CCodeParameter ("connection", "GDBusConnection*"));
cfunc.add_parameter (new CCodeParameter ("sender", "const gchar*"));
cfunc.add_parameter (new CCodeParameter ("object_path", "const gchar*"));
info.append (new CCodeConstant ("\"%s\"".printf (get_type_signature (param.variable_type, param))));
var cdecl = new CCodeDeclaration ("const GDBusArgInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_" + param.name, info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_" + param.name, info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
if (param.direction == ParameterDirection.IN) {
- in_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_" + param.name)));
+ in_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_" + param.name)));
} else {
- out_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_" + param.name)));
+ out_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_" + param.name)));
}
}
info.append (new CCodeConstant ("\"%s\"".printf (get_type_signature (m.return_type, m))));
var cdecl = new CCodeDeclaration ("const GDBusArgInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_result", info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_result", info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- out_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_result")));
+ out_args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_result")));
}
in_args_info.append (new CCodeConstant ("NULL"));
out_args_info.append (new CCodeConstant ("NULL"));
var cdecl = new CCodeDeclaration ("const GDBusArgInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_in[]", in_args_info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_in[]", in_args_info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
cdecl = new CCodeDeclaration ("const GDBusArgInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_out[]", out_args_info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_out[]", out_args_info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
var info = new CCodeInitializerList ();
info.append (new CCodeConstant ("-1"));
info.append (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (m))));
- info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_in")), "GDBusArgInfo **"));
- info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + m.name + "_out")), "GDBusArgInfo **"));
+ info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_in")), "GDBusArgInfo **"));
+ info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + m.name + "_out")), "GDBusArgInfo **"));
cdecl = new CCodeDeclaration ("const GDBusMethodInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_method_info_" + m.name, info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_method_info_" + m.name, info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_method_info_" + m.name)));
+ infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_method_info_" + m.name)));
}
infos.append (new CCodeConstant ("NULL"));
var cdecl = new CCodeDeclaration ("const GDBusMethodInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_method_info[]", infos));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_method_info[]", infos));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- return new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_method_info");
+ return new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_method_info");
}
CCodeExpression get_signal_info (ObjectTypeSymbol sym) {
info.append (new CCodeConstant ("\"%s\"".printf (get_type_signature (param.variable_type, param))));
var cdecl = new CCodeDeclaration ("const GDBusArgInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + sig.get_cname () + "_" + param.name, info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + get_ccode_name (sig) + "_" + param.name, info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + sig.get_cname () + "_" + param.name)));
+ args_info.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + get_ccode_name (sig) + "_" + param.name)));
}
args_info.append (new CCodeConstant ("NULL"));
var cdecl = new CCodeDeclaration ("const GDBusArgInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + sig.get_cname () + "[]", args_info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + get_ccode_name (sig) + "[]", args_info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
var info = new CCodeInitializerList ();
info.append (new CCodeConstant ("-1"));
info.append (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (sig))));
- info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_arg_info_" + sig.get_cname ())), "GDBusArgInfo **"));
+ info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_arg_info_" + get_ccode_name (sig))), "GDBusArgInfo **"));
cdecl = new CCodeDeclaration ("const GDBusSignalInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_signal_info_" + sig.get_cname (), info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_signal_info_" + get_ccode_name (sig), info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_signal_info_" + sig.get_cname ())));
+ infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_signal_info_" + get_ccode_name (sig))));
}
infos.append (new CCodeConstant ("NULL"));
var cdecl = new CCodeDeclaration ("const GDBusSignalInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_signal_info[]", infos));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_signal_info[]", infos));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- return new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_signal_info");
+ return new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_signal_info");
}
CCodeExpression get_property_info (ObjectTypeSymbol sym) {
}
var cdecl = new CCodeDeclaration ("const GDBusPropertyInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_property_info_" + prop.name, info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_property_info_" + prop.name, info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_property_info_" + prop.name)));
+ infos.append (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_property_info_" + prop.name)));
}
infos.append (new CCodeConstant ("NULL"));
var cdecl = new CCodeDeclaration ("const GDBusPropertyInfo * const");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_property_info[]", infos));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_property_info[]", infos));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- return new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_property_info");
+ return new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_property_info");
}
CCodeExpression get_interface_info (ObjectTypeSymbol sym) {
info.append (new CCodeCastExpression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_property_info (sym)), "GDBusPropertyInfo **"));
var cdecl = new CCodeDeclaration ("const GDBusInterfaceInfo");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_interface_info", info));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_interface_info", info));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- return new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_interface_info");
+ return new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_interface_info");
}
CCodeExpression get_interface_vtable (ObjectTypeSymbol sym) {
var vtable = new CCodeInitializerList ();
- vtable.append (new CCodeIdentifier (sym.get_lower_case_cprefix () + "dbus_interface_method_call"));
- vtable.append (new CCodeIdentifier (sym.get_lower_case_cprefix () + "dbus_interface_get_property"));
- vtable.append (new CCodeIdentifier (sym.get_lower_case_cprefix () + "dbus_interface_set_property"));
+ vtable.append (new CCodeIdentifier (get_ccode_lower_case_prefix (sym) + "dbus_interface_method_call"));
+ vtable.append (new CCodeIdentifier (get_ccode_lower_case_prefix (sym) + "dbus_interface_get_property"));
+ vtable.append (new CCodeIdentifier (get_ccode_lower_case_prefix (sym) + "dbus_interface_set_property"));
generate_interface_method_call_function (sym);
generate_interface_get_property_function (sym);
generate_interface_set_property_function (sym);
var cdecl = new CCodeDeclaration ("const GDBusInterfaceVTable");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_" + sym.get_lower_case_cprefix () + "dbus_interface_vtable", vtable));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_" + get_ccode_lower_case_prefix (sym) + "dbus_interface_vtable", vtable));
cdecl.modifiers = CCodeModifiers.STATIC;
cfile.add_constant_declaration (cdecl);
- return new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "dbus_interface_vtable");
+ return new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "dbus_interface_vtable");
}
string generate_register_object_function () {
public override void visit_method_call (MethodCall expr) {
var mtype = expr.call.value_type as MethodType;
- if (mtype == null || mtype.method_symbol.get_cname () != "g_dbus_connection_register_object") {
+ if (mtype == null || get_ccode_name (mtype.method_symbol) != "g_dbus_connection_register_object") {
base.visit_method_call (expr);
return;
}
return;
}
- cregister = new CCodeFunctionCall (new CCodeIdentifier ("%sregister_object".printf (object_type.type_symbol.get_lower_case_cprefix ())));
+ cregister = new CCodeFunctionCall (new CCodeIdentifier ("%sregister_object".printf (get_ccode_lower_case_prefix (object_type.type_symbol))));
} else {
// use runtime type information for generic methods
cregister = new CCodeFunctionCall (new CCodeIdentifier (generate_register_object_function ()));
return;
}
- string register_object_name = "%sregister_object".printf (sym.get_lower_case_cprefix ());
+ string register_object_name = "%sregister_object".printf (get_ccode_lower_case_prefix (sym));
if (add_symbol_declaration (decl_space, sym, register_object_name)) {
return;
cfile.add_include ("gio/gio.h");
- var cfunc = new CCodeFunction (sym.get_lower_case_cprefix () + "register_object", "guint");
+ var cfunc = new CCodeFunction (get_ccode_lower_case_prefix (sym) + "register_object", "guint");
cfunc.add_parameter (new CCodeParameter ("object", "gpointer"));
cfunc.add_parameter (new CCodeParameter ("connection", "GDBusConnection*"));
cfunc.add_parameter (new CCodeParameter ("path", "const gchar*"));
alloc_data.add_argument (new CCodeConstant ("3"));
ccode.add_assignment (new CCodeIdentifier ("data"), alloc_data);
- var ref_function = sym.get_ref_function ();
+ var ref_function = get_ccode_ref_function (sym);
if (sym is Interface && ref_function == null) {
Report.error (sym.source_reference, "missing class prerequisite for interface `%s', add GLib.Object to interface declaration if unsure".printf (sym.get_full_name ()));
return;
cregister.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_interface_vtable (sym)));
cregister.add_argument (new CCodeIdentifier ("data"));
- cregister.add_argument (new CCodeIdentifier ("_" + sym.get_lower_case_cprefix () + "unregister_object"));
+ cregister.add_argument (new CCodeIdentifier ("_" + get_ccode_lower_case_prefix (sym) + "unregister_object"));
cregister.add_argument (new CCodeIdentifier ("error"));
ccode.add_assignment (new CCodeIdentifier ("result"), cregister);
cfile.add_function (cfunc);
- cfunc = new CCodeFunction ("_" + sym.get_lower_case_cprefix () + "unregister_object");
+ cfunc = new CCodeFunction ("_" + get_ccode_lower_case_prefix (sym) + "unregister_object");
cfunc.add_parameter (new CCodeParameter ("user_data", "gpointer"));
cfunc.modifiers |= CCodeModifiers.STATIC;
ccode.add_declaration ("gpointer*", new CCodeVariableDeclarator ("data", new CCodeIdentifier ("user_data")));
- var unref_object = new CCodeFunctionCall (new CCodeIdentifier (sym.get_unref_function ()));
+ var unref_object = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_unref_function (sym)));
unref_object.add_argument (new CCodeElementAccess (new CCodeIdentifier ("data"), new CCodeConstant ("0")));
ccode.add_expression (unref_object);
quark.add_argument (new CCodeConstant ("\"vala-dbus-register-object\""));
var set_qdata = new CCodeFunctionCall (new CCodeIdentifier ("g_type_set_qdata"));
- set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (sym.get_lower_case_cname (null))));
+ set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (get_ccode_lower_case_name (sym, null))));
set_qdata.add_argument (quark);
- set_qdata.add_argument (new CCodeCastExpression (new CCodeIdentifier (sym.get_lower_case_cprefix () + "register_object"), "void*"));
+ set_qdata.add_argument (new CCodeCastExpression (new CCodeIdentifier (get_ccode_lower_case_prefix (sym) + "register_object"), "void*"));
block.add_statement (new CCodeExpressionStatement (set_qdata));
}
private bool is_in_catch = false;
public override void generate_error_domain_declaration (ErrorDomain edomain, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, edomain, edomain.get_cname ())) {
+ if (add_symbol_declaration (decl_space, edomain, get_ccode_name (edomain))) {
return;
}
- var cenum = new CCodeEnum (edomain.get_cname ());
+ var cenum = new CCodeEnum (get_ccode_name (edomain));
foreach (ErrorCode ecode in edomain.get_codes ()) {
if (ecode.value == null) {
- cenum.add_value (new CCodeEnumValue (ecode.get_cname ()));
+ cenum.add_value (new CCodeEnumValue (get_ccode_name (ecode)));
} else {
ecode.value.emit (this);
- cenum.add_value (new CCodeEnumValue (ecode.get_cname (), get_cvalue (ecode.value)));
+ cenum.add_value (new CCodeEnumValue (get_ccode_name (ecode), get_cvalue (ecode.value)));
}
}
decl_space.add_type_definition (cenum);
- string quark_fun_name = edomain.get_lower_case_cprefix () + "quark";
+ string quark_fun_name = get_ccode_lower_case_prefix (edomain) + "quark";
- var error_domain_define = new CCodeMacroReplacement (edomain.get_upper_case_cname (), quark_fun_name + " ()");
+ var error_domain_define = new CCodeMacroReplacement (get_ccode_upper_case_name (edomain), quark_fun_name + " ()");
decl_space.add_type_definition (error_domain_define);
- var cquark_fun = new CCodeFunction (quark_fun_name, gquark_type.data_type.get_cname ());
+ var cquark_fun = new CCodeFunction (quark_fun_name, get_ccode_name (gquark_type.data_type));
decl_space.add_function_declaration (cquark_fun);
}
generate_error_domain_declaration (edomain, internal_header_file);
}
- string quark_fun_name = edomain.get_lower_case_cprefix () + "quark";
+ string quark_fun_name = get_ccode_lower_case_prefix (edomain) + "quark";
- var cquark_fun = new CCodeFunction (quark_fun_name, gquark_type.data_type.get_cname ());
+ var cquark_fun = new CCodeFunction (quark_fun_name, get_ccode_name (gquark_type.data_type));
push_function (cquark_fun);
var cquark_call = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_static_string"));
- cquark_call.add_argument (new CCodeConstant ("\"" + edomain.get_lower_case_cname () + "-quark\""));
+ cquark_call.add_argument (new CCodeConstant ("\"" + get_ccode_lower_case_name (edomain) + "-quark\""));
ccode.add_return (cquark_call);
/* catch clause specifies a specific error code */
var error_match = new CCodeFunctionCall (new CCodeIdentifier ("g_error_matches"));
error_match.add_argument (inner_error);
- error_match.add_argument (new CCodeIdentifier (catch_type.data_type.get_upper_case_cname ()));
- error_match.add_argument (new CCodeIdentifier (catch_type.error_code.get_cname ()));
+ error_match.add_argument (new CCodeIdentifier (get_ccode_upper_case_name (catch_type.data_type)));
+ error_match.add_argument (new CCodeIdentifier (get_ccode_name (catch_type.error_code)));
ccode.open_if (error_match);
} else {
/* catch clause specifies a full error domain */
var ccond = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY,
new CCodeMemberAccess.pointer (inner_error, "domain"), new CCodeIdentifier
- (clause.error_type.data_type.get_upper_case_cname ()));
+ (get_ccode_upper_case_name (clause.error_type.data_type)));
ccode.open_if (ccond);
}
// Check the allowed error domains to propagate
var domain_check = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeMemberAccess.pointer
- (inner_error, "domain"), new CCodeIdentifier (error_type.data_type.get_upper_case_cname ()));
+ (inner_error, "domain"), new CCodeIdentifier (get_ccode_upper_case_name (error_type.data_type)));
if (ccond == null) {
ccond = domain_check;
} else {
is_in_catch = true;
foreach (CatchClause clause in stmt.get_catch_clauses ()) {
- clause.clabel_name = "__catch%d_%s".printf (this_try_id, clause.error_type.get_lower_case_cname ());
+ clause.clabel_name = "__catch%d_%s".printf (this_try_id, get_ccode_lower_case_name (clause.error_type));
}
is_in_catch = false;
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
ccall.add_argument (new CCodeIdentifier ("klass"));
if (class_has_readable_properties (cl) || cl.get_type_parameters ().size > 0) {
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccall, "get_property"), new CCodeIdentifier ("_vala_%s_get_property".printf (cl.get_lower_case_cname (null))));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccall, "get_property"), new CCodeIdentifier ("_vala_%s_get_property".printf (get_ccode_lower_case_name (cl, null))));
}
if (class_has_writable_properties (cl) || cl.get_type_parameters ().size > 0) {
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccall, "set_property"), new CCodeIdentifier ("_vala_%s_set_property".printf (cl.get_lower_case_cname (null))));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccall, "set_property"), new CCodeIdentifier ("_vala_%s_set_property".printf (get_ccode_lower_case_name (cl, null))));
}
/* set constructor */
if (cl.constructor != null) {
var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
ccast.add_argument (new CCodeIdentifier ("klass"));
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "constructor"), new CCodeIdentifier ("%s_constructor".printf (cl.get_lower_case_cname (null))));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "constructor"), new CCodeIdentifier ("%s_constructor".printf (get_ccode_lower_case_name (cl, null))));
}
/* set finalize function */
if (cl.get_fields ().size > 0 || cl.destructor != null) {
var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
ccast.add_argument (new CCodeIdentifier ("klass"));
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%s_finalize".printf (cl.get_lower_case_cname (null))));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%s_finalize".printf (get_ccode_lower_case_name (cl, null))));
}
/* create type, dup_func, and destroy_func properties for generic types */
func_name = "%s_type".printf (type_param.name.down ());
func_name_constant = new CCodeConstant ("\"%s-type\"".printf (type_param.name.down ()));
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
cinst.add_argument (new CCodeConstant (enum_value));
func_name = "%s_dup_func".printf (type_param.name.down ());
func_name_constant = new CCodeConstant ("\"%s-dup-func\"".printf (type_param.name.down ()));
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
cinst.add_argument (new CCodeConstant (enum_value));
func_name = "%s_destroy_func".printf (type_param.name.down ());
func_name_constant = new CCodeConstant ("\"%s-destroy-func\"".printf (type_param.name.down ()));
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
cinst.add_argument (new CCodeConstant (enum_value));
if (prop.overrides || prop.base_interface_property != null) {
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_override_property"));
cinst.add_argument (ccall);
- cinst.add_argument (new CCodeConstant (prop.get_upper_case_cname ()));
- cinst.add_argument (prop.get_canonical_cconstant ());
+ cinst.add_argument (new CCodeConstant (get_ccode_upper_case_name (prop)));
+ cinst.add_argument (get_property_canonical_cconstant (prop));
ccode.add_expression (cinst);
} else {
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
- cinst.add_argument (new CCodeConstant (prop.get_upper_case_cname ()));
+ cinst.add_argument (new CCodeConstant (get_ccode_upper_case_name (prop)));
cinst.add_argument (get_param_spec (prop));
ccode.add_expression (cinst);
}
private void add_get_property_function (Class cl) {
- var get_prop = new CCodeFunction ("_vala_%s_get_property".printf (cl.get_lower_case_cname (null)), "void");
+ var get_prop = new CCodeFunction ("_vala_%s_get_property".printf (get_ccode_lower_case_name (cl, null)), "void");
get_prop.modifiers = CCodeModifiers.STATIC;
get_prop.add_parameter (new CCodeParameter ("object", "GObject *"));
get_prop.add_parameter (new CCodeParameter ("property_id", "guint"));
push_function (get_prop);
CCodeFunctionCall ccall = generate_instance_cast (new CCodeIdentifier ("object"), cl);
- ccode.add_declaration ("%s *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("self", ccall));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self", ccall));
ccode.open_switch (new CCodeIdentifier ("property_id"));
var props = cl.get_properties ();
generate_property_accessor_declaration (prop.base_interface_property.get_accessor, cfile);
}
- ccode.add_case (new CCodeIdentifier (prop.get_upper_case_cname ()));
+ ccode.add_case (new CCodeIdentifier (get_ccode_upper_case_name (prop)));
if (prop.property_type.is_real_struct_type ()) {
var st = prop.property_type.data_type as Struct;
ccode.open_block ();
- ccode.add_declaration (st.get_cname (), new CCodeVariableDeclarator ("boxed"));
+ ccode.add_declaration (get_ccode_name (st), new CCodeVariableDeclarator ("boxed"));
- ccall = new CCodeFunctionCall (new CCodeIdentifier (base_prop.get_accessor.get_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (base_prop.get_accessor)));
ccall.add_argument (cself);
var boxed_addr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("boxed"));
ccall.add_argument (boxed_addr);
}
ccode.close ();
} else {
- ccall = new CCodeFunctionCall (new CCodeIdentifier (base_prop.get_accessor.get_cname ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (base_prop.get_accessor)));
ccall.add_argument (cself);
var array_type = prop.property_type as ArrayType;
if (array_type != null && array_type.element_type.data_type == string_type.data_type) {
}
private void add_set_property_function (Class cl) {
- var set_prop = new CCodeFunction ("_vala_%s_set_property".printf (cl.get_lower_case_cname (null)), "void");
+ var set_prop = new CCodeFunction ("_vala_%s_set_property".printf (get_ccode_lower_case_name (cl, null)), "void");
set_prop.modifiers = CCodeModifiers.STATIC;
set_prop.add_parameter (new CCodeParameter ("object", "GObject *"));
set_prop.add_parameter (new CCodeParameter ("property_id", "guint"));
push_function (set_prop);
CCodeFunctionCall ccall = generate_instance_cast (new CCodeIdentifier ("object"), cl);
- ccode.add_declaration ("%s *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("self", ccall));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self", ccall));
ccode.open_switch (new CCodeIdentifier ("property_id"));
var props = cl.get_properties ();
generate_property_accessor_declaration (prop.base_interface_property.set_accessor, cfile);
}
- ccode.add_case (new CCodeIdentifier (prop.get_upper_case_cname ()));
- ccall = new CCodeFunctionCall (new CCodeIdentifier (base_prop.set_accessor.get_cname ()));
+ ccode.add_case (new CCodeIdentifier (get_ccode_upper_case_name (prop)));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_name (base_prop.set_accessor)));
ccall.add_argument (cself);
if (prop.property_type is ArrayType && ((ArrayType)prop.property_type).element_type.data_type == string_type.data_type) {
ccode.open_block ();
} else {
var cgetcall = new CCodeFunctionCall ();
if (prop.property_type.data_type != null) {
- cgetcall.call = new CCodeIdentifier (prop.property_type.data_type.get_get_value_function ());
+ cgetcall.call = new CCodeIdentifier (get_ccode_get_value_function (prop.property_type.data_type));
} else {
cgetcall.call = new CCodeIdentifier ("g_value_get_pointer");
}
CCodeFunctionCall cgetcall;
func_name = "%s_type".printf (type_param.name.down ());
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
cgetcall = new CCodeFunctionCall (new CCodeIdentifier ("g_value_get_gtype"));
ccode.add_break ();
func_name = "%s_dup_func".printf (type_param.name.down ());
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
cgetcall = new CCodeFunctionCall (new CCodeIdentifier ("g_value_get_pointer"));
ccode.add_break ();
func_name = "%s_destroy_func".printf (type_param.name.down ());
- enum_value = "%s_%s".printf (cl.get_lower_case_cname (null), func_name).up ();
+ enum_value = "%s_%s".printf (get_ccode_lower_case_name (cl, null), func_name).up ();
ccode.add_case (new CCodeIdentifier (enum_value));
cfield = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
cgetcall = new CCodeFunctionCall (new CCodeIdentifier ("g_value_get_pointer"));
push_context (new EmitContext (c));
- var function = new CCodeFunction ("%s_constructor".printf (cl.get_lower_case_cname (null)), "GObject *");
+ var function = new CCodeFunction ("%s_constructor".printf (get_ccode_lower_case_name (cl, null)), "GObject *");
function.modifiers = CCodeModifiers.STATIC;
function.add_parameter (new CCodeParameter ("type", "GType"));
ccode.add_declaration ("GObjectClass *", new CCodeVariableDeclarator ("parent_class"));
var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
- ccast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (cl.get_lower_case_cname (null))));
+ ccast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (cl, null))));
ccode.add_assignment (new CCodeIdentifier ("parent_class"), ccast);
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (new CCodeIdentifier ("parent_class"), "constructor"));
ccall = generate_instance_cast (new CCodeIdentifier ("obj"), cl);
- ccode.add_declaration ("%s *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), ccall);
c.body.emit (this);
string getter_cname = "_dynamic_get_%s%d".printf (prop.name, dynamic_property_id++);
- var func = new CCodeFunction (getter_cname, prop.property_type.get_cname ());
+ var func = new CCodeFunction (getter_cname, get_ccode_name (prop.property_type));
func.modifiers |= CCodeModifiers.STATIC | CCodeModifiers.INLINE;
- func.add_parameter (new CCodeParameter ("obj", prop.dynamic_type.get_cname ()));
+ func.add_parameter (new CCodeParameter ("obj", get_ccode_name (prop.dynamic_type)));
push_function (func);
- ccode.add_declaration (prop.property_type.get_cname (), new CCodeVariableDeclarator ("result"));
+ ccode.add_declaration (get_ccode_name (prop.property_type), new CCodeVariableDeclarator ("result"));
var call = new CCodeFunctionCall (new CCodeIdentifier ("g_object_get"));
call.add_argument (new CCodeIdentifier ("obj"));
- call.add_argument (prop.get_canonical_cconstant ());
+ call.add_argument (get_property_canonical_cconstant (prop));
call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("result")));
call.add_argument (new CCodeConstant ("NULL"));
var func = new CCodeFunction (setter_cname, "void");
func.modifiers |= CCodeModifiers.STATIC | CCodeModifiers.INLINE;
- func.add_parameter (new CCodeParameter ("obj", prop.dynamic_type.get_cname ()));
- func.add_parameter (new CCodeParameter ("value", prop.property_type.get_cname ()));
+ func.add_parameter (new CCodeParameter ("obj", get_ccode_name (prop.dynamic_type)));
+ func.add_parameter (new CCodeParameter ("value", get_ccode_name (prop.property_type)));
push_function (func);
var call = new CCodeFunctionCall (new CCodeIdentifier ("g_object_set"));
call.add_argument (new CCodeIdentifier ("obj"));
- call.add_argument (prop.get_canonical_cconstant ());
+ call.add_argument (get_property_canonical_cconstant (prop));
call.add_argument (new CCodeIdentifier ("value"));
call.add_argument (new CCodeConstant ("NULL"));
base.visit_property (prop);
if (is_gobject_property (prop) && prop.parent_symbol is Class) {
- prop_enum.add_value (new CCodeEnumValue (prop.get_upper_case_cname ()));
+ prop_enum.add_value (new CCodeEnumValue (get_ccode_upper_case_name (prop)));
}
}
}
var st = prop.property_type.data_type as Struct;
- if (st != null && (!st.has_type_id || prop.property_type.nullable)) {
+ if (st != null && (!get_ccode_has_type_id (st) || prop.property_type.nullable)) {
return false;
}
public class Vala.GSignalModule : GObjectModule {
- private string get_marshaller_type_name (DataType t) {
- if (t is PointerType || t.type_parameter != null) {
- return ("POINTER");
- } else if (t is ErrorType) {
- return ("POINTER");
- } else if (t is ArrayType) {
- if (((ArrayType) t).element_type.data_type == string_type.data_type) {
- return ("BOXED,INT");
- } else {
- return ("POINTER,INT");
- }
- } else if (t is VoidType) {
- return ("VOID");
- } else if (t.data_type is Enum) {
- var en = (Enum) t.data_type;
- return en.get_marshaller_type_name ();
- } else {
- return t.data_type.get_marshaller_type_name ();
- }
- }
-
- private string get_marshaller_type_name_for_parameter (Parameter param) {
- if (param.direction != ParameterDirection.IN) {
- return ("POINTER");
- } else {
- return get_marshaller_type_name (param.variable_type);
- }
- }
-
string get_marshaller_function (List<Parameter> params, DataType return_type, string? prefix = null) {
var signature = get_marshaller_signature (params, return_type);
string ret;
}
}
- ret = "%s_%s_".printf (prefix, get_marshaller_type_name (return_type));
+ ret = "%s_%s_".printf (prefix, get_ccode_marshaller_type_name (return_type));
if (params == null || params.size == 0) {
ret = ret + "_VOID";
} else {
foreach (Parameter p in params) {
- ret = "%s_%s".printf (ret, get_marshaller_type_name_for_parameter (p).replace (",", "_"));
+ ret = "%s_%s".printf (ret, get_ccode_marshaller_type_name (p).replace (",", "_"));
}
}
} else if (t.data_type is Struct) {
var st = (Struct) t.data_type;
if (st.is_simple_type ()) {
- return t.data_type.get_cname ();
+ return get_ccode_name (t.data_type);
} else {
return "gpointer";
}
private string get_marshaller_signature (List<Parameter> params, DataType return_type) {
string signature;
- signature = "%s:".printf (get_marshaller_type_name (return_type));
+ signature = "%s:".printf (get_ccode_marshaller_type_name (return_type));
if (params == null || params.size == 0) {
signature = signature + "VOID";
} else {
bool first = true;
foreach (Parameter p in params) {
if (first) {
- signature = signature + get_marshaller_type_name_for_parameter (p);
+ signature = signature + get_ccode_marshaller_type_name (p);
first = false;
} else {
- signature = "%s,%s".printf (signature, get_marshaller_type_name_for_parameter (p));
+ signature = "%s,%s".printf (signature, get_ccode_marshaller_type_name (p));
}
}
}
private CCodeExpression? get_signal_name_cexpression (Signal sig, Expression? detail_expr, CodeNode node) {
if (detail_expr == null) {
- return sig.get_canonical_cconstant ();
+ return get_signal_canonical_constant (sig);
}
if (detail_expr.value_type is NullType || !detail_expr.value_type.compatible (string_type)) {
}
if (detail_expr is StringLiteral) {
- return sig.get_canonical_cconstant (((StringLiteral) detail_expr).eval ());
+ return get_signal_canonical_constant (sig, ((StringLiteral) detail_expr).eval ());
}
var detail_value = create_temp_value (detail_expr.value_type, false, node, true);
temp_ref_values.insert (0, detail_value);
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_strconcat"));
- ccall.add_argument (sig.get_canonical_cconstant (""));
+ ccall.add_argument (get_signal_canonical_constant (sig, ""));
ccall.add_argument (get_cvalue (detail_expr));
ccall.add_argument (new CCodeConstant ("NULL"));
} else if (p.variable_type is ErrorType) {
get_value_function = "g_value_get_pointer";
} else {
- get_value_function = p.variable_type.data_type.get_get_value_function ();
+ get_value_function = get_ccode_get_value_function (p.variable_type.data_type);
}
var inner_fc = new CCodeFunctionCall (new CCodeIdentifier (get_value_function));
inner_fc.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("param_values"), new CCodeIdentifier (i.to_string ())));
} else if (return_type.data_type is Class || return_type.data_type is Interface) {
set_fc = new CCodeFunctionCall (new CCodeIdentifier ("g_value_take_object"));
} else {
- set_fc = new CCodeFunctionCall (new CCodeIdentifier (return_type.data_type.get_set_value_function ()));
+ set_fc = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_set_value_function (return_type.data_type)));
}
set_fc.add_argument (new CCodeIdentifier ("return_value"));
set_fc.add_argument (new CCodeIdentifier ("v_return"));
public override CCodeFunctionCall get_signal_creation (Signal sig, TypeSymbol type) {
var csignew = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_new"));
- csignew.add_argument (new CCodeConstant ("\"%s\"".printf (sig.get_cname ())));
- csignew.add_argument (new CCodeIdentifier (type.get_type_id ()));
+ csignew.add_argument (new CCodeConstant ("\"%s\"".printf (get_ccode_name (sig))));
+ csignew.add_argument (new CCodeIdentifier (get_ccode_type_id (type)));
string[] flags = new string[0];
- if (sig.run_type == "first") {
+ var run_type = sig.get_attribute_string ("Signal", "run");
+ if (run_type == "first") {
flags += "G_SIGNAL_RUN_FIRST";
- } else if (sig.run_type == "cleanup") {
+ } else if (run_type == "cleanup") {
flags += "G_SIGNAL_RUN_CLEANUP";
} else {
flags += "G_SIGNAL_RUN_LAST";
}
- if (sig.is_detailed) {
+ if (sig.get_attribute_bool ("Signal", "detailed")) {
flags += "G_SIGNAL_DETAILED";
}
- if (sig.no_recurse) {
+ if (sig.get_attribute_bool ("Signal", "no_recurse")) {
flags += "G_SIGNAL_NO_RECURSE";
}
- if (sig.is_action) {
+ if (sig.get_attribute_bool ("Signal", "action")) {
flags += "G_SIGNAL_ACTION";
}
- if (sig.no_hooks) {
+ if (sig.get_attribute_bool ("Signal", "no_hooks")) {
flags += "G_SIGNAL_NO_HOOKS";
}
} else {
var struct_offset = new CCodeFunctionCall (new CCodeIdentifier ("G_STRUCT_OFFSET"));
if (type is Class) {
- struct_offset.add_argument (new CCodeIdentifier ("%sClass".printf (type.get_cname ())));
+ struct_offset.add_argument (new CCodeIdentifier ("%sClass".printf (get_ccode_name (type))));
} else {
// interface
- struct_offset.add_argument (new CCodeIdentifier (((Interface) type).get_type_cname ()));
+ struct_offset.add_argument (new CCodeIdentifier (get_ccode_type_name ((Interface) type)));
}
- struct_offset.add_argument (new CCodeIdentifier (sig.default_handler.vfunc_name));
+ struct_offset.add_argument (new CCodeIdentifier (get_ccode_vfunc_name (sig.default_handler)));
csignew.add_argument (struct_offset);
}
csignew.add_argument (new CCodeConstant ("NULL"));
} else if (sig.return_type.data_type == null) {
csignew.add_argument (new CCodeConstant ("G_TYPE_NONE"));
} else {
- csignew.add_argument (new CCodeConstant (sig.return_type.data_type.get_type_id ()));
+ csignew.add_argument (new CCodeConstant (get_ccode_type_id (sig.return_type.data_type)));
}
int params_len = 0;
} else if (param.variable_type is ErrorType) {
csignew.add_argument (new CCodeConstant ("G_TYPE_POINTER"));
} else {
- csignew.add_argument (new CCodeConstant (param.variable_type.data_type.get_type_id ()));
+ csignew.add_argument (new CCodeConstant (get_ccode_type_id (param.variable_type.data_type)));
}
}
if (expr.inner is BaseAccess && sig.is_virtual) {
var m = sig.default_handler;
var base_class = (Class) m.parent_symbol;
- var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (base_class.get_upper_case_cname (null))));
- vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (current_class.get_lower_case_cname (null))));
+ var vcast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_class, null))));
+ vcast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (current_class))));
set_cvalue (expr, new CCodeMemberAccess.pointer (vcast, m.name));
return;
}
- if (sig.has_emitter) {
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_%s".printf (cl.get_lower_case_cname (null), sig.name)));
+ if (get_signal_has_emitter (sig)) {
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_%s".printf (get_ccode_lower_case_name (cl), sig.name)));
ccall.add_argument (pub_inst);
set_cvalue (expr, ccall);
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_emit_by_name"));
ccall.add_argument (pub_inst);
- ccall.add_argument (sig.get_canonical_cconstant ());
+ ccall.add_argument (get_signal_canonical_constant (sig));
set_cvalue (expr, ccall);
}
var parse_call = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_parse_name"));
parse_call.add_argument (signal_name_cexpr);
var decl_type = (TypeSymbol) sig.parent_symbol;
- parse_call.add_argument (new CCodeIdentifier (decl_type.get_type_id ()));
+ parse_call.add_argument (new CCodeIdentifier (get_ccode_type_id (decl_type)));
parse_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_decl.name)));
LocalVariable? detail_temp_decl = null;
if (!(signal_access is ElementAccess)) {
generate_type_declaration (param.variable_type, decl_space);
- string ctypename = param.variable_type.get_cname ();
+ string ctypename = get_ccode_name (param.variable_type);
if (param.direction != ParameterDirection.IN) {
ctypename += "*";
var cparam = new CCodeParameter (get_variable_cname (param.name), ctypename);
- cparam_map.set (get_param_pos (param.cparameter_position), cparam);
+ cparam_map.set (get_param_pos (get_ccode_pos (param)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (param.cparameter_position), get_variable_cexpression (param.name));
+ carg_map.set (get_param_pos (get_ccode_pos (param)), get_variable_cexpression (param.name));
}
return cparam;
}
public override void generate_class_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, get_ccode_name (cl))) {
return;
}
if (is_gtypeinstance) {
decl_space.add_type_declaration (new CCodeNewline ());
- var macro = "(%s_get_type ())".printf (cl.get_lower_case_cname (null));
- decl_space.add_type_declaration (new CCodeMacroReplacement (cl.get_type_id (), macro));
+ var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (cl, null));
+ decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (cl), macro));
- macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (cl.get_type_id (), cl.get_cname ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (cl.get_upper_case_cname (null)), macro));
+ macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_upper_case_name (cl, null)), macro));
- macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %sClass))".printf (cl.get_type_id (), cl.get_cname ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_CLASS(klass)".printf (cl.get_upper_case_cname (null)), macro));
+ macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_CLASS(klass)".printf (get_ccode_upper_case_name (cl, null)), macro));
- macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (cl.get_type_id ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_type_check_function (cl)), macro));
+ macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (get_ccode_type_id (cl));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_check_function (cl)), macro));
- macro = "(G_TYPE_CHECK_CLASS_TYPE ((klass), %s))".printf (cl.get_type_id ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_CLASS(klass)".printf (get_type_check_function (cl)), macro));
+ macro = "(G_TYPE_CHECK_CLASS_TYPE ((klass), %s))".printf (get_ccode_type_id (cl));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_CLASS(klass)".printf (get_ccode_type_check_function (cl)), macro));
- macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %sClass))".printf (cl.get_type_id (), cl.get_cname ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_GET_CLASS(obj)".printf (cl.get_upper_case_cname (null)), macro));
+ macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_GET_CLASS(obj)".printf (get_ccode_upper_case_name (cl, null)), macro));
decl_space.add_type_declaration (new CCodeNewline ());
}
if (cl.is_compact && cl.base_class != null) {
- decl_space.add_type_declaration (new CCodeTypeDefinition (cl.base_class.get_cname (), new CCodeVariableDeclarator (cl.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition (get_ccode_name (cl.base_class), new CCodeVariableDeclarator (get_ccode_name (cl))));
} else {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (cl.get_cname ()), new CCodeVariableDeclarator (cl.get_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (cl)), new CCodeVariableDeclarator (get_ccode_name (cl))));
}
if (is_fundamental) {
- var ref_fun = new CCodeFunction (cl.get_lower_case_cprefix () + "ref", "gpointer");
- var unref_fun = new CCodeFunction (cl.get_lower_case_cprefix () + "unref", "void");
+ var ref_fun = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "ref", "gpointer");
+ var unref_fun = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "unref", "void");
if (cl.access == SymbolAccessibility.PRIVATE) {
ref_fun.modifiers = CCodeModifiers.STATIC;
unref_fun.modifiers = CCodeModifiers.STATIC;
decl_space.add_function_declaration (unref_fun);
// GParamSpec and GValue functions
- string function_name = cl.get_lower_case_cname ("param_spec_");
+ string function_name = get_ccode_lower_case_name (cl, "param_spec_");
var function = new CCodeFunction (function_name, "GParamSpec*");
function.add_parameter (new CCodeParameter ("name", "const gchar*"));
decl_space.add_function_declaration (function);
- function = new CCodeFunction (cl.get_set_value_function (), "void");
+ function = new CCodeFunction (get_ccode_set_value_function (cl), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.add_parameter (new CCodeParameter ("v_object", "gpointer"));
decl_space.add_function_declaration (function);
- function = new CCodeFunction (cl.get_take_value_function (), "void");
+ function = new CCodeFunction (get_ccode_take_value_function (cl), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.add_parameter (new CCodeParameter ("v_object", "gpointer"));
decl_space.add_function_declaration (function);
- function = new CCodeFunction (cl.get_get_value_function (), "gpointer");
+ function = new CCodeFunction (get_ccode_get_value_function (cl), "gpointer");
function.add_parameter (new CCodeParameter ("value", "const GValue*"));
if (cl.access == SymbolAccessibility.PRIVATE) {
decl_space.add_function_declaration (function);
} else if (!is_gtypeinstance) {
if (cl.base_class == null) {
- var function = new CCodeFunction (cl.get_lower_case_cprefix () + "free", "void");
+ var function = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "free", "void");
if (cl.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", cl.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (cl) + "*"));
decl_space.add_function_declaration (function);
}
}
if (is_gtypeinstance) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%sClass".printf (cl.get_cname ()), new CCodeVariableDeclarator ("%sClass".printf (cl.get_cname ()))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%sClass".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("%sClass".printf (get_ccode_name (cl)))));
var type_fun = new ClassRegisterFunction (cl, context);
type_fun.init_from_type (in_plugin, true);
}
public override void generate_class_struct_declaration (Class cl, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, cl, "struct _" + cl.get_cname ())) {
+ if (add_symbol_declaration (decl_space, cl, "struct _" + get_ccode_name (cl))) {
return;
}
bool is_gtypeinstance = !cl.is_compact;
bool is_fundamental = is_gtypeinstance && cl.base_class == null;
- var instance_struct = new CCodeStruct ("_%s".printf (cl.get_cname ()));
- var type_struct = new CCodeStruct ("_%sClass".printf (cl.get_cname ()));
+ var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (cl)));
+ var type_struct = new CCodeStruct ("_%sClass".printf (get_ccode_name (cl)));
if (cl.base_class != null) {
- instance_struct.add_field (cl.base_class.get_cname (), "parent_instance");
+ instance_struct.add_field (get_ccode_name (cl.base_class), "parent_instance");
} else if (is_fundamental) {
decl_space.add_include ("glib-object.h");
instance_struct.add_field ("GTypeInstance", "parent_instance");
}
if (is_gtypeinstance) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %sPrivate".printf (instance_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (cl.get_cname ()))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %sPrivate".printf (instance_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (get_ccode_name (cl)))));
- instance_struct.add_field ("%sPrivate *".printf (cl.get_cname ()), "priv");
+ instance_struct.add_field ("%sPrivate *".printf (get_ccode_name (cl)), "priv");
if (is_fundamental) {
type_struct.add_field ("GTypeClass", "parent_class");
} else {
- type_struct.add_field ("%sClass".printf (cl.base_class.get_cname ()), "parent_class");
+ type_struct.add_field ("%sClass".printf (get_ccode_name (cl.base_class)), "parent_class");
}
if (is_fundamental) {
- type_struct.add_field ("void", "(*finalize) (%s *self)".printf (cl.get_cname ()));
+ type_struct.add_field ("void", "(*finalize) (%s *self)".printf (get_ccode_name (cl)));
}
}
var t = (ObjectTypeSymbol) prop.parent_symbol;
var this_type = new ObjectType (t);
- var cselfparam = new CCodeParameter ("self", this_type.get_cname ());
+ var cselfparam = new CCodeParameter ("self", get_ccode_name (this_type));
if (prop.get_accessor != null) {
var vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (prop.name));
vdeclarator.add_parameter (cselfparam);
string creturn_type;
if (prop.property_type.is_real_non_null_struct_type ()) {
- var cvalueparam = new CCodeParameter ("result", prop.get_accessor.value_type.get_cname () + "*");
+ var cvalueparam = new CCodeParameter ("result", get_ccode_name (prop.get_accessor.value_type) + "*");
vdeclarator.add_parameter (cvalueparam);
creturn_type = "void";
} else {
- creturn_type = prop.get_accessor.value_type.get_cname ();
+ creturn_type = get_ccode_name (prop.get_accessor.value_type);
}
var array_type = prop.property_type as ArrayType;
if (prop.set_accessor != null) {
CCodeParameter cvalueparam;
if (prop.property_type.is_real_non_null_struct_type ()) {
- cvalueparam = new CCodeParameter ("value", prop.set_accessor.value_type.get_cname () + "*");
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.set_accessor.value_type) + "*");
} else {
- cvalueparam = new CCodeParameter ("value", prop.set_accessor.value_type.get_cname ());
+ cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.set_accessor.value_type));
}
var vdeclarator = new CCodeFunctionDeclarator ("set_%s".printf (prop.name));
}
foreach (Field f in cl.get_fields ()) {
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
if (f.binding == MemberBinding.INSTANCE) {
generate_type_declaration (f.variable_type, decl_space);
- instance_struct.add_field (field_ctype, f.get_cname (), f.variable_type.get_cdeclarator_suffix ());
- if (f.variable_type is ArrayType && !f.no_array_length) {
+ instance_struct.add_field (field_ctype, get_ccode_name (f), f.variable_type.get_cdeclarator_suffix ());
+ if (f.variable_type is ArrayType && get_ccode_array_length (f)) {
// create fields to store array dimensions
var array_type = (ArrayType) f.variable_type;
for (int dim = 1; dim <= array_type.rank; dim++) {
string length_cname;
- if (f.has_array_length_cname) {
- length_cname = f.get_array_length_cname ();
+ if (get_ccode_array_length_name (f) != null) {
+ length_cname = get_ccode_array_length_name (f);
} else {
length_cname = get_array_length_cname (f.name, dim);
}
- instance_struct.add_field (len_type.get_cname (), length_cname);
+ instance_struct.add_field (get_ccode_name (len_type), length_cname);
}
if (array_type.rank == 1 && f.is_internal_symbol ()) {
- instance_struct.add_field (len_type.get_cname (), get_array_size_cname (f.name));
+ instance_struct.add_field (get_ccode_name (len_type), get_array_size_cname (f.name));
}
}
} else if (f.variable_type is DelegateType) {
}
}
} else if (f.binding == MemberBinding.CLASS) {
- type_struct.add_field (field_ctype, f.get_cname ());
+ type_struct.add_field (field_ctype, get_ccode_name (f));
}
}
}
}
// add vfunc field to the type struct
- var vdeclarator = new CCodeFunctionDeclarator (m.vfunc_name);
+ var vdeclarator = new CCodeFunctionDeclarator (get_ccode_vfunc_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
generate_cparameters (m, decl_space, cparam_map, new CCodeFunction ("fake"), vdeclarator);
- var vdecl = new CCodeDeclaration (creturn_type.get_cname ());
+ var vdecl = new CCodeDeclaration (get_ccode_name (creturn_type));
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
}
void generate_class_private_declaration (Class cl, CCodeFile decl_space) {
- if (decl_space.add_declaration (cl.get_cname () + "Private")) {
+ if (decl_space.add_declaration (get_ccode_name (cl) + "Private")) {
return;
}
bool is_gtypeinstance = !cl.is_compact;
bool has_class_locks = false;
- var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (cl.get_cname ()));
- var type_priv_struct = new CCodeStruct ("_%sClassPrivate".printf (cl.get_cname ()));
+ var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_name (cl)));
+ var type_priv_struct = new CCodeStruct ("_%sClassPrivate".printf (get_ccode_name (cl)));
if (is_gtypeinstance) {
/* create type, dup_func, and destroy_func fields for generic types */
}
foreach (Field f in cl.get_fields ()) {
- string field_ctype = f.variable_type.get_cname ();
+ string field_ctype = get_ccode_name (f.variable_type);
if (f.is_volatile) {
field_ctype = "volatile " + field_ctype;
}
if (f.access == SymbolAccessibility.PRIVATE) {
generate_type_declaration (f.variable_type, decl_space);
- instance_priv_struct.add_field (field_ctype, f.get_cname (), f.variable_type.get_cdeclarator_suffix ());
- if (f.variable_type is ArrayType && !f.no_array_length) {
+ instance_priv_struct.add_field (field_ctype, get_ccode_name (f), f.variable_type.get_cdeclarator_suffix ());
+ if (f.variable_type is ArrayType && get_ccode_array_length (f)) {
// create fields to store array dimensions
var array_type = (ArrayType) f.variable_type;
var len_type = int_type.copy ();
if (!array_type.fixed_length) {
for (int dim = 1; dim <= array_type.rank; dim++) {
string length_cname;
- if (f.has_array_length_cname) {
- length_cname = f.get_array_length_cname ();
+ if (get_ccode_array_length_name (f) != null) {
+ length_cname = get_ccode_array_length_name (f);
} else {
length_cname = get_array_length_cname (f.name, dim);
}
- instance_priv_struct.add_field (len_type.get_cname (), length_cname);
+ instance_priv_struct.add_field (get_ccode_name (len_type), length_cname);
}
if (array_type.rank == 1 && f.is_internal_symbol ()) {
- instance_priv_struct.add_field (len_type.get_cname (), get_array_size_cname (f.name));
+ instance_priv_struct.add_field (get_ccode_name (len_type), get_array_size_cname (f.name));
}
}
} else if (f.variable_type is DelegateType) {
if (f.get_lock_used ()) {
cl.has_private_fields = true;
// add field for mutex
- instance_priv_struct.add_field (mutex_type.get_cname (), get_symbol_lock_name (f.name));
+ instance_priv_struct.add_field (get_ccode_name (mutex_type), get_symbol_lock_name (f.name));
}
} else if (f.binding == MemberBinding.CLASS) {
if (f.access == SymbolAccessibility.PRIVATE) {
- type_priv_struct.add_field (field_ctype, f.get_cname ());
+ type_priv_struct.add_field (field_ctype, get_ccode_name (f));
}
if (f.get_lock_used ()) {
has_class_locks = true;
// add field for mutex
- type_priv_struct.add_field (mutex_type.get_cname (), get_symbol_lock_name (f.get_cname ()));
+ type_priv_struct.add_field (get_ccode_name (mutex_type), get_symbol_lock_name (get_ccode_name (f)));
}
}
}
if (prop.get_lock_used ()) {
cl.has_private_fields = true;
// add field for mutex
- instance_priv_struct.add_field (mutex_type.get_cname (), get_symbol_lock_name (prop.name));
+ instance_priv_struct.add_field (get_ccode_name (mutex_type), get_symbol_lock_name (prop.name));
}
} else if (prop.binding == MemberBinding.CLASS) {
if (prop.get_lock_used ()) {
has_class_locks = true;
// add field for mutex
- type_priv_struct.add_field (mutex_type.get_cname (), get_symbol_lock_name (prop.name));
+ type_priv_struct.add_field (get_ccode_name (mutex_type), get_symbol_lock_name (prop.name));
}
}
}
if (is_gtypeinstance) {
if (cl.has_class_private_fields || has_class_locks) {
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sClassPrivate".printf (cl.get_cname ()))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sClassPrivate".printf (get_ccode_name (cl)))));
if (!context.require_glib_version (2, 24)) {
var cdecl = new CCodeDeclaration ("GQuark");
- cdecl.add_declarator (new CCodeVariableDeclarator ("_vala_%s_class_private_quark".printf (cl.get_lower_case_cname ()), new CCodeConstant ("0")));
+ cdecl.add_declarator (new CCodeVariableDeclarator ("_vala_%s_class_private_quark".printf (get_ccode_lower_case_name (cl)), new CCodeConstant ("0")));
cdecl.modifiers = CCodeModifiers.STATIC;
decl_space.add_type_declaration (cdecl);
}
/* only add the *Private struct if it is not empty, i.e. we actually have private data */
if (cl.has_private_fields || cl.get_type_parameters ().size > 0) {
decl_space.add_type_definition (instance_priv_struct);
- var macro = "(G_TYPE_INSTANCE_GET_PRIVATE ((o), %s, %sPrivate))".printf (cl.get_type_id (), cl.get_cname ());
- decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (cl.get_upper_case_cname (null)), macro));
+ var macro = "(G_TYPE_INSTANCE_GET_PRIVATE ((o), %s, %sPrivate))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
+ decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_PRIVATE(o)".printf (get_ccode_upper_case_name (cl, null)), macro));
}
if (cl.has_class_private_fields || has_class_locks) {
string macro;
if (context.require_glib_version (2, 24)) {
- macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))".printf (cl.get_type_id (), cl.get_cname ());
+ macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
} else {
- macro = "((%sClassPrivate *) g_type_get_qdata (G_TYPE_FROM_CLASS (klass), _vala_%s_class_private_quark))".printf (cl.get_cname(), cl.get_lower_case_cname ());
+ macro = "((%sClassPrivate *) g_type_get_qdata (G_TYPE_FROM_CLASS (klass), _vala_%s_class_private_quark))".printf (get_ccode_name (cl), get_ccode_lower_case_name (cl));
}
- decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_CLASS_PRIVATE(klass)".printf (cl.get_upper_case_cname (null)), macro));
+ decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s_GET_CLASS_PRIVATE(klass)".printf (get_ccode_upper_case_name (cl, null)), macro));
}
decl_space.add_type_member_declaration (prop_enum);
} else {
bool is_gtypeinstance = !cl.is_compact;
bool is_fundamental = is_gtypeinstance && cl.base_class == null;
- if (cl.get_cname().length < 3) {
+ if (get_ccode_name (cl).length < 3) {
cl.error = true;
- Report.error (cl.source_reference, "Class name `%s' is too short".printf (cl.get_cname ()));
+ Report.error (cl.source_reference, "Class name `%s' is too short".printf (get_ccode_name (cl)));
return;
}
prop_enum = new CCodeEnum ();
- prop_enum.add_value (new CCodeEnumValue ("%s_DUMMY_PROPERTY".printf (cl.get_upper_case_cname (null))));
+ prop_enum.add_value (new CCodeEnumValue ("%s_DUMMY_PROPERTY".printf (get_ccode_upper_case_name (cl, null))));
class_init_context = new EmitContext (cl);
base_init_context = new EmitContext (cl);
class_finalize_context = new EmitContext (cl);
if (is_gtypeinstance) {
if (is_fundamental) {
- param_spec_struct = new CCodeStruct ( "_%sParamSpec%s".printf(cl.parent_symbol.get_cprefix (), cl.name));
+ param_spec_struct = new CCodeStruct ( "_%sParamSpec%s".printf(get_ccode_prefix (cl.parent_symbol), cl.name));
param_spec_struct.add_field ("GParamSpec", "parent_instance");
cfile.add_type_definition (param_spec_struct);
- cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (param_spec_struct.name), new CCodeVariableDeclarator ( "%sParamSpec%s".printf(cl.parent_symbol.get_cprefix (), cl.name))));
+ cfile.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (param_spec_struct.name), new CCodeVariableDeclarator ( "%sParamSpec%s".printf(get_ccode_prefix (cl.parent_symbol), cl.name))));
gvaluecollector_h_needed = true;
var ref_count = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "ref_count");
// ref function
- var ref_fun = new CCodeFunction (cl.get_lower_case_cprefix () + "ref", "gpointer");
+ var ref_fun = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "ref", "gpointer");
ref_fun.add_parameter (new CCodeParameter ("instance", "gpointer"));
if (cl.access == SymbolAccessibility.PRIVATE) {
ref_fun.modifiers = CCodeModifiers.STATIC;
}
push_function (ref_fun);
- ccode.add_declaration (cl.get_cname () + "*", new CCodeVariableDeclarator ("self", new CCodeIdentifier ("instance")));
+ ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator ("self", new CCodeIdentifier ("instance")));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_atomic_int_inc"));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, ref_count));
ccode.add_expression (ccall);
cfile.add_function (ref_fun);
// unref function
- var unref_fun = new CCodeFunction (cl.get_lower_case_cprefix () + "unref", "void");
+ var unref_fun = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "unref", "void");
unref_fun.add_parameter (new CCodeParameter ("instance", "gpointer"));
if (cl.access == SymbolAccessibility.PRIVATE) {
unref_fun.modifiers = CCodeModifiers.STATIC;
}
push_function (unref_fun);
- ccode.add_declaration (cl.get_cname () + "*", new CCodeVariableDeclarator ("self", new CCodeIdentifier ("instance")));
+ ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator ("self", new CCodeIdentifier ("instance")));
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_atomic_int_dec_and_test"));
ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, ref_count));
ccode.open_if (ccall);
- var get_class = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (cl.get_upper_case_cname (null))));
+ var get_class = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (cl, null))));
get_class.add_argument (new CCodeIdentifier ("self"));
// finalize class
- var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (cl.get_upper_case_cname (null))));
+ var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (get_ccode_upper_case_name (cl, null))));
ccast.add_argument (new CCodeIdentifier ("self"));
ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (ccast, "finalize"));
ccall.add_argument (new CCodeIdentifier ("self"));
}
private void add_type_value_table_init_function (Class cl) {
- var function = new CCodeFunction ("%s_init".printf (cl.get_lower_case_cname ("value_")), "void");
+ var function = new CCodeFunction ("%s_init".printf (get_ccode_lower_case_name (cl, "value_")), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.modifiers = CCodeModifiers.STATIC;
}
private void add_type_value_table_free_function (Class cl) {
- var function = new CCodeFunction ("%s_free_value".printf (cl.get_lower_case_cname ("value_")), "void");
+ var function = new CCodeFunction ("%s_free_value".printf (get_ccode_lower_case_name (cl, "value_")), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.modifiers = CCodeModifiers.STATIC;
push_function (function);
var vpointer = new CCodeMemberAccess(new CCodeMemberAccess.pointer (new CCodeIdentifier ("value"), "data[0]"),"v_pointer");
- var ccall = new CCodeFunctionCall (new CCodeIdentifier (cl.get_lower_case_cprefix () + "unref"));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_lower_case_prefix (cl) + "unref"));
ccall.add_argument (vpointer);
ccode.open_if (vpointer);
}
private void add_type_value_table_copy_function (Class cl) {
- var function = new CCodeFunction ("%s_copy_value".printf (cl.get_lower_case_cname ("value_")), "void");
+ var function = new CCodeFunction ("%s_copy_value".printf (get_ccode_lower_case_name (cl, "value_")), "void");
function.add_parameter (new CCodeParameter ("src_value", "const GValue*"));
function.add_parameter (new CCodeParameter ("dest_value", "GValue*"));
function.modifiers = CCodeModifiers.STATIC;
var dest_vpointer = new CCodeMemberAccess (new CCodeMemberAccess.pointer (new CCodeIdentifier ("dest_value"), "data[0]"), "v_pointer");
var src_vpointer = new CCodeMemberAccess (new CCodeMemberAccess.pointer (new CCodeIdentifier ("src_value"), "data[0]"), "v_pointer");
- var ref_ccall = new CCodeFunctionCall (new CCodeIdentifier (cl.get_lower_case_cprefix () + "ref"));
+ var ref_ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_lower_case_prefix (cl) + "ref"));
ref_ccall.add_argument ( src_vpointer );
ccode.open_if (src_vpointer);
}
private void add_type_value_table_peek_pointer_function (Class cl) {
- var function = new CCodeFunction ("%s_peek_pointer".printf (cl.get_lower_case_cname ("value_")), "gpointer");
+ var function = new CCodeFunction ("%s_peek_pointer".printf (get_ccode_lower_case_name (cl, "value_")), "gpointer");
function.add_parameter (new CCodeParameter ("value", "const GValue*"));
function.modifiers = CCodeModifiers.STATIC;
}
private void add_type_value_table_lcopy_value_function ( Class cl ) {
- var function = new CCodeFunction ("%s_lcopy_value".printf (cl.get_lower_case_cname ("value_")), "gchar*");
+ var function = new CCodeFunction ("%s_lcopy_value".printf (get_ccode_lower_case_name (cl, "value_")), "gchar*");
function.add_parameter (new CCodeParameter ("value", "const GValue*"));
function.add_parameter (new CCodeParameter ("n_collect_values", "guint"));
function.add_parameter (new CCodeParameter ("collect_values", "GTypeCValue*"));
push_function (function);
- ccode.add_declaration (cl.get_cname () + "**", new CCodeVariableDeclarator ("object_p", new CCodeMemberAccess (new CCodeIdentifier ("collect_values[0]"), "v_pointer")));
+ ccode.add_declaration (get_ccode_name (cl) + "**", new CCodeVariableDeclarator ("object_p", new CCodeMemberAccess (new CCodeIdentifier ("collect_values[0]"), "v_pointer")));
var value_type_name_fct = new CCodeFunctionCall (new CCodeIdentifier ("G_VALUE_TYPE_NAME"));
value_type_name_fct.add_argument (new CCodeConstant ("value"));
var main_condition = new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, vpointer);
var main_else_if_condition = new CCodeBinaryExpression (CCodeBinaryOperator.BITWISE_AND, new CCodeIdentifier ("collect_flags"), new CCodeIdentifier ("G_VALUE_NOCOPY_CONTENTS"));
- var ref_fct = new CCodeFunctionCall (new CCodeIdentifier (cl.get_ref_function()));
+ var ref_fct = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_ref_function (cl)));
ref_fct.add_argument (vpointer);
ccode.open_if (main_condition);
ccode.add_assignment (object_p_ptr, null_);
}
private void add_type_value_table_collect_value_function (Class cl) {
- var function = new CCodeFunction ("%s_collect_value".printf (cl.get_lower_case_cname ("value_")), "gchar*");
+ var function = new CCodeFunction ("%s_collect_value".printf (get_ccode_lower_case_name (cl, "value_")), "gchar*");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.add_parameter (new CCodeParameter ("n_collect_values", "guint"));
function.add_parameter (new CCodeParameter ("collect_values", "GTypeCValue*"));
var collect_vpointer = new CCodeMemberAccess (new CCodeIdentifier ("collect_values[0]"), "v_pointer");
ccode.open_if (collect_vpointer);
- ccode.add_declaration (cl.get_cname () + "*", new CCodeVariableDeclarator ("object", collect_vpointer));
+ ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator ("object", collect_vpointer));
var obj_identifier = new CCodeIdentifier ("object");
var l_expression = new CCodeMemberAccess (new CCodeMemberAccess.pointer (obj_identifier, "parent_instance"), "g_class");
var sub_condition = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, l_expression, new CCodeConstant ("NULL"));
ccode.close ();
- var ref_call = new CCodeFunctionCall (new CCodeIdentifier (cl.get_ref_function ()));
+ var ref_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_ref_function (cl)));
ref_call.add_argument (new CCodeIdentifier ("object"));
ccode.add_assignment (vpointer, ref_call);
}
private void add_g_param_spec_type_function (Class cl) {
- string function_name = cl.get_lower_case_cname ("param_spec_");
+ string function_name = get_ccode_lower_case_name (cl, "param_spec_");
var function = new CCodeFunction (function_name, "GParamSpec*");
function.add_parameter (new CCodeParameter ("name", "const gchar*"));
push_function (function);
- ccode.add_declaration ("%sParamSpec%s*".printf (cl.parent_symbol.get_cprefix (), cl.name), new CCodeVariableDeclarator ("spec"));
+ ccode.add_declaration ("%sParamSpec%s*".printf (get_ccode_prefix (cl.parent_symbol), cl.name), new CCodeVariableDeclarator ("spec"));
var subccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_is_a"));
subccall.add_argument (new CCodeIdentifier ("object_type"));
- subccall.add_argument (new CCodeIdentifier ( cl.get_type_id() ));
+ subccall.add_argument (new CCodeIdentifier ( get_ccode_type_id (cl) ));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_val_if_fail"));
ccall.add_argument (subccall);
}
private void add_g_value_set_function (Class cl) {
- var function = new CCodeFunction (cl.get_set_value_function (), "void");
+ var function = new CCodeFunction (get_ccode_set_value_function (cl), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.add_parameter (new CCodeParameter ("v_object", "gpointer"));
push_function (function);
- ccode.add_declaration (cl.get_cname()+"*", new CCodeVariableDeclarator ("old"));
+ ccode.add_declaration (get_ccode_name (cl)+"*", new CCodeVariableDeclarator ("old"));
var ccall_typecheck = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_CHECK_VALUE_TYPE"));
ccall_typecheck.add_argument (new CCodeIdentifier ( "value" ));
- ccall_typecheck.add_argument (new CCodeIdentifier ( cl.get_type_id() ));
+ ccall_typecheck.add_argument (new CCodeIdentifier ( get_ccode_type_id (cl) ));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_if_fail"));
ccall.add_argument (ccall_typecheck);
ccode.open_if (new CCodeIdentifier ("v_object"));
ccall_typecheck = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_CHECK_INSTANCE_TYPE"));
ccall_typecheck.add_argument (new CCodeIdentifier ( "v_object" ));
- ccall_typecheck.add_argument (new CCodeIdentifier ( cl.get_type_id() ));
+ ccall_typecheck.add_argument (new CCodeIdentifier ( get_ccode_type_id (cl) ));
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_if_fail"));
ccall.add_argument (ccall_typecheck);
ccode.add_assignment (vpointer, new CCodeConstant ("v_object"));
- ccall = new CCodeFunctionCall (new CCodeIdentifier (cl.get_ref_function ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_ref_function (cl)));
ccall.add_argument (vpointer);
ccode.add_expression (ccall);
ccode.close ();
ccode.open_if (new CCodeIdentifier ("old"));
- ccall = new CCodeFunctionCall (new CCodeIdentifier (cl.get_unref_function ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_unref_function (cl)));
ccall.add_argument (new CCodeIdentifier ("old"));
ccode.add_expression (ccall);
ccode.close ();
}
private void add_g_value_take_function (Class cl) {
- var function = new CCodeFunction (cl.get_take_value_function (), "void");
+ var function = new CCodeFunction (get_ccode_take_value_function (cl), "void");
function.add_parameter (new CCodeParameter ("value", "GValue*"));
function.add_parameter (new CCodeParameter ("v_object", "gpointer"));
push_function (function);
- ccode.add_declaration (cl.get_cname()+"*", new CCodeVariableDeclarator ("old"));
+ ccode.add_declaration (get_ccode_name (cl)+"*", new CCodeVariableDeclarator ("old"));
var ccall_typecheck = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_CHECK_VALUE_TYPE"));
ccall_typecheck.add_argument (new CCodeIdentifier ( "value" ));
- ccall_typecheck.add_argument (new CCodeIdentifier ( cl.get_type_id() ));
+ ccall_typecheck.add_argument (new CCodeIdentifier ( get_ccode_type_id (cl) ));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_if_fail"));
ccall.add_argument (ccall_typecheck);
ccall_typecheck = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_CHECK_INSTANCE_TYPE"));
ccall_typecheck.add_argument (new CCodeIdentifier ( "v_object" ));
- ccall_typecheck.add_argument (new CCodeIdentifier ( cl.get_type_id() ));
+ ccall_typecheck.add_argument (new CCodeIdentifier ( get_ccode_type_id (cl) ));
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_if_fail"));
ccall.add_argument (ccall_typecheck);
ccode.close ();
ccode.open_if (new CCodeIdentifier ("old"));
- ccall = new CCodeFunctionCall (new CCodeIdentifier (cl.get_unref_function ()));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_unref_function (cl)));
ccall.add_argument (new CCodeIdentifier ("old"));
ccode.add_expression (ccall);
ccode.close ();
}
private void add_g_value_get_function (Class cl) {
- var function = new CCodeFunction (cl.get_get_value_function (), "gpointer");
+ var function = new CCodeFunction (get_ccode_get_value_function (cl), "gpointer");
function.add_parameter (new CCodeParameter ("value", "const GValue*"));
if (cl.access == SymbolAccessibility.PRIVATE) {
var ccall_typecheck = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_CHECK_VALUE_TYPE"));
ccall_typecheck.add_argument (new CCodeIdentifier ("value"));
- ccall_typecheck.add_argument (new CCodeIdentifier (cl.get_type_id ()));
+ ccall_typecheck.add_argument (new CCodeIdentifier (get_ccode_type_id (cl)));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_return_val_if_fail"));
ccall.add_argument (ccall_typecheck);
private void begin_base_init_function (Class cl) {
push_context (base_init_context);
- var base_init = new CCodeFunction ("%s_base_init".printf (cl.get_lower_case_cname (null)), "void");
- base_init.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (cl.get_cname ())));
+ var base_init = new CCodeFunction ("%s_base_init".printf (get_ccode_lower_case_name (cl, null)), "void");
+ base_init.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
base_init.modifiers = CCodeModifiers.STATIC;
push_function (base_init);
if (!context.require_glib_version (2, 24) && cl.has_class_private_fields) {
- ccode.add_declaration ("%sClassPrivate *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("priv"));
- ccode.add_declaration ("%sClassPrivate *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("parent_priv", new CCodeConstant ("NULL")));
+ ccode.add_declaration ("%sClassPrivate *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("priv"));
+ ccode.add_declaration ("%sClassPrivate *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("parent_priv", new CCodeConstant ("NULL")));
ccode.add_declaration ("GType", new CCodeVariableDeclarator ("parent_type"));
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_parent"));
ccode.add_assignment (new CCodeIdentifier ("parent_type"), ccall);
ccode.open_if (new CCodeIdentifier ("parent_type"));
- ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (cl.get_upper_case_cname (null))));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (get_ccode_upper_case_name (cl, null))));
ccall2 = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_peek"));
ccall2.add_argument (new CCodeIdentifier ("parent_type"));
ccall.add_argument (ccall2);
ccode.close ();
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_new0"));
- ccall.add_argument (new CCodeIdentifier ("%sClassPrivate".printf(cl.get_cname())));
+ ccall.add_argument (new CCodeIdentifier ("%sClassPrivate".printf(get_ccode_name (cl))));
ccode.add_assignment (new CCodeIdentifier ("priv"), ccall);
cfile.add_include ("string.h");
ccall = new CCodeFunctionCall (new CCodeIdentifier ("memcpy"));
ccall.add_argument (new CCodeIdentifier ("priv"));
ccall.add_argument (new CCodeIdentifier ("parent_priv"));
- ccall.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf(cl.get_cname())));
+ ccall.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf(get_ccode_name (cl))));
ccode.add_expression (ccall);
ccode.close ();
ccall2 = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_FROM_CLASS"));
ccall2.add_argument (new CCodeIdentifier ("klass"));
ccall.add_argument (ccall2);
- ccall.add_argument (new CCodeIdentifier ("_vala_%s_class_private_quark".printf (cl.get_lower_case_cname ())));
+ ccall.add_argument (new CCodeIdentifier ("_vala_%s_class_private_quark".printf (get_ccode_lower_case_name (cl))));
ccall.add_argument (new CCodeIdentifier ("priv"));
ccode.add_expression (ccall);
}
private void begin_class_init_function (Class cl) {
push_context (class_init_context);
- var func = new CCodeFunction ("%s_class_init".printf (cl.get_lower_case_cname (null)));
- func.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (cl.get_cname ())));
+ var func = new CCodeFunction ("%s_class_init".printf (get_ccode_lower_case_name (cl, null)));
+ func.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
func.modifiers = CCodeModifiers.STATIC;
CCodeFunctionCall ccall;
/* save pointer to parent class */
var parent_decl = new CCodeDeclaration ("gpointer");
- var parent_var_decl = new CCodeVariableDeclarator ("%s_parent_class".printf (cl.get_lower_case_cname (null)));
+ var parent_var_decl = new CCodeVariableDeclarator ("%s_parent_class".printf (get_ccode_lower_case_name (cl, null)));
parent_var_decl.initializer = new CCodeConstant ("NULL");
parent_decl.add_declarator (parent_var_decl);
parent_decl.modifiers = CCodeModifiers.STATIC;
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_peek_parent"));
ccall.add_argument (new CCodeIdentifier ("klass"));
- var parent_assignment = new CCodeAssignment (new CCodeIdentifier ("%s_parent_class".printf (cl.get_lower_case_cname (null))), ccall);
+ var parent_assignment = new CCodeAssignment (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (cl, null))), ccall);
ccode.add_expression (parent_assignment);
fundamental_class = fundamental_class.base_class;
}
- ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (fundamental_class.get_upper_case_cname (null))));
+ ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (fundamental_class, null))));
ccall.add_argument (new CCodeIdentifier ("klass"));
- var finalize_assignment = new CCodeAssignment (new CCodeMemberAccess.pointer (ccall, "finalize"), new CCodeIdentifier (cl.get_lower_case_cprefix () + "finalize"));
+ var finalize_assignment = new CCodeAssignment (new CCodeMemberAccess.pointer (ccall, "finalize"), new CCodeIdentifier (get_ccode_lower_case_prefix (cl) + "finalize"));
ccode.add_expression (finalize_assignment);
}
if (cl.has_private_fields || cl.get_type_parameters ().size > 0) {
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_add_private"));
ccall.add_argument (new CCodeIdentifier ("klass"));
- ccall.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (cl.get_cname ())));
+ ccall.add_argument (new CCodeConstant ("sizeof (%sPrivate)".printf (get_ccode_name (cl))));
ccode.add_expression (ccall);
}
// there is currently no default handler for abstract async methods
if (!m.is_abstract || !m.coroutine) {
- var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (((Class) base_type).get_upper_case_cname (null))));
+ var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_type))));
ccast.add_argument (new CCodeIdentifier ("klass"));
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, m.base_method.vfunc_name), new CCodeIdentifier (m.get_real_cname ()));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (m.base_method)), new CCodeIdentifier (get_ccode_real_name (m)));
if (m.coroutine) {
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, m.base_method.get_finish_vfunc_name ()), new CCodeIdentifier (m.get_finish_real_cname ()));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_finish_vfunc_name (m.base_method)), new CCodeIdentifier (get_ccode_finish_real_name (m)));
}
}
}
if (sig.default_handler == null) {
continue;
}
- var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (cl.get_upper_case_cname (null))));
+ var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (cl, null))));
ccast.add_argument (new CCodeIdentifier ("klass"));
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, sig.default_handler.vfunc_name), new CCodeIdentifier (sig.default_handler.get_real_cname ()));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (sig.default_handler)), new CCodeIdentifier (get_ccode_real_name (sig.default_handler)));
}
/* connect overridden properties */
}
var base_type = prop.base_property.parent_symbol;
- var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (((Class) base_type).get_upper_case_cname (null))));
+ var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (base_type))));
ccast.add_argument (new CCodeIdentifier ("klass"));
if (prop.get_accessor != null) {
- string cname = "%s_real_get_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ string cname = "%s_real_get_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "get_%s".printf (prop.name)), new CCodeIdentifier (cname));
}
if (prop.set_accessor != null) {
- string cname = "%s_real_set_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ string cname = "%s_real_set_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "set_%s".printf (prop.name)), new CCodeIdentifier (cname));
}
}
}
private void add_interface_init_function (Class cl, Interface iface) {
- var iface_init = new CCodeFunction ("%s_%s_interface_init".printf (cl.get_lower_case_cname (null), iface.get_lower_case_cname (null)), "void");
- iface_init.add_parameter (new CCodeParameter ("iface", "%s *".printf (iface.get_type_cname ())));
+ var iface_init = new CCodeFunction ("%s_%s_interface_init".printf (get_ccode_lower_case_name (cl), get_ccode_lower_case_name (iface)), "void");
+ iface_init.add_parameter (new CCodeParameter ("iface", "%s *".printf (get_ccode_type_name (iface))));
iface_init.modifiers = CCodeModifiers.STATIC;
push_function (iface_init);
CCodeFunctionCall ccall;
/* save pointer to parent vtable */
- string parent_iface_var = "%s_%s_parent_iface".printf (cl.get_lower_case_cname (null), iface.get_lower_case_cname (null));
- var parent_decl = new CCodeDeclaration (iface.get_type_cname () + "*");
+ string parent_iface_var = "%s_%s_parent_iface".printf (get_ccode_lower_case_name (cl), get_ccode_lower_case_name (iface));
+ var parent_decl = new CCodeDeclaration (get_ccode_type_name (iface) + "*");
var parent_var_decl = new CCodeVariableDeclarator (parent_iface_var);
parent_var_decl.initializer = new CCodeConstant ("NULL");
parent_decl.add_declarator (parent_var_decl);
var ciface = new CCodeIdentifier ("iface");
CCodeExpression cfunc;
if (m.is_abstract || m.is_virtual) {
- cfunc = new CCodeIdentifier (m.get_cname ());
+ cfunc = new CCodeIdentifier (get_ccode_name (m));
} else {
- cfunc = new CCodeIdentifier (m.get_real_cname ());
+ cfunc = new CCodeIdentifier (get_ccode_real_name (m));
}
cfunc = cast_method_pointer (m.base_interface_method, cfunc, iface);
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.base_interface_method.vfunc_name), cfunc);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_vfunc_name (m.base_interface_method)), cfunc);
if (m.coroutine) {
if (m.is_abstract || m.is_virtual) {
- cfunc = new CCodeIdentifier (m.get_finish_cname ());
+ cfunc = new CCodeIdentifier (get_ccode_finish_name (m));
} else {
- cfunc = new CCodeIdentifier (m.get_finish_real_cname ());
+ cfunc = new CCodeIdentifier (get_ccode_finish_real_name (m));
}
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.base_interface_method.get_finish_vfunc_name ()), cfunc);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_finish_vfunc_name (m.base_interface_method)), cfunc);
}
}
generate_method_declaration (base_method, cfile);
- CCodeExpression cfunc = new CCodeIdentifier (base_method.get_cname ());
+ CCodeExpression cfunc = new CCodeIdentifier (get_ccode_name (base_method));
cfunc = cast_method_pointer (base_method, cfunc, iface);
var ciface = new CCodeIdentifier ("iface");
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.vfunc_name), cfunc);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_vfunc_name (m)), cfunc);
}
}
}
var ciface = new CCodeIdentifier ("iface");
if (prop.get_accessor != null) {
- string cname = "%s_real_get_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ string cname = "%s_real_get_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
if (prop.is_abstract || prop.is_virtual) {
- cname = "%s_get_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ cname = "%s_get_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
}
CCodeExpression cfunc = new CCodeIdentifier (cname);
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), cfunc);
}
if (prop.set_accessor != null) {
- string cname = "%s_real_set_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ string cname = "%s_real_set_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
if (prop.is_abstract || prop.is_virtual) {
- cname = "%s_set_%s".printf (cl.get_lower_case_cname (null), prop.name);
+ cname = "%s_set_%s".printf (get_ccode_lower_case_name (cl, null), prop.name);
}
CCodeExpression cfunc = new CCodeIdentifier (cname);
if (base_property.get_accessor != null) {
generate_property_accessor_declaration (base_property.get_accessor, cfile);
- string cname = base_property.get_accessor.get_cname ();
+ string cname = get_ccode_name (base_property.get_accessor);
CCodeExpression cfunc = new CCodeIdentifier (cname);
cfunc = cast_property_accessor_pointer (prop.get_accessor, cfunc, iface);
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), cfunc);
if (base_property.set_accessor != null) {
generate_property_accessor_declaration (base_property.set_accessor, cfile);
- string cname = base_property.set_accessor.get_cname ();
+ string cname = get_ccode_name (base_property.set_accessor);
CCodeExpression cfunc = new CCodeIdentifier (cname);
cfunc = cast_property_accessor_pointer (prop.set_accessor, cfunc, iface);
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), cfunc);
CCodeExpression cast_property_accessor_pointer (PropertyAccessor acc, CCodeExpression cfunc, ObjectTypeSymbol base_type) {
string cast;
if (acc.readable && acc.value_type.is_real_non_null_struct_type ()) {
- cast = "void (*) (%s *, %s *)".printf (base_type.get_cname (), acc.value_type.get_cname ());
+ cast = "void (*) (%s *, %s *)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
} else if (acc.readable) {
- cast = "%s (*) (%s *)".printf (acc.value_type.get_cname (), base_type.get_cname ());
+ cast = "%s (*) (%s *)".printf (get_ccode_name (acc.value_type), get_ccode_name (base_type));
} else if (acc.value_type.is_real_non_null_struct_type ()) {
- cast = "void (*) (%s *, %s *)".printf (base_type.get_cname (), acc.value_type.get_cname ());
+ cast = "void (*) (%s *, %s *)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
} else {
- cast = "void (*) (%s *, %s)".printf (base_type.get_cname (), acc.value_type.get_cname ());
+ cast = "void (*) (%s *, %s)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
}
return new CCodeCastExpression (cfunc, cast);
}
if (m.return_type.is_real_non_null_struct_type ()) {
cast = "void (*)";
} else {
- cast = m.return_type.get_cname () + " (*)";
+ cast = get_ccode_name (m.return_type) + " (*)";
}
- string cast_args = base_type.get_cname () + "*";
+ string cast_args = get_ccode_name (base_type) + "*";
- var vdeclarator = new CCodeFunctionDeclarator (m.vfunc_name);
+ var vdeclarator = new CCodeFunctionDeclarator (get_ccode_vfunc_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
generate_cparameters (m, cfile, cparam_map, new CCodeFunction ("fake"), vdeclarator);
private void begin_instance_init_function (Class cl) {
push_context (instance_init_context);
- var func = new CCodeFunction ("%s_instance_init".printf (cl.get_lower_case_cname (null)));
- func.add_parameter (new CCodeParameter ("self", "%s *".printf (cl.get_cname ())));
+ var func = new CCodeFunction ("%s_instance_init".printf (get_ccode_lower_case_name (cl, null)));
+ func.add_parameter (new CCodeParameter ("self", "%s *".printf (get_ccode_name (cl))));
func.modifiers = CCodeModifiers.STATIC;
push_function (func);
}
if (!cl.is_compact && (cl.has_private_fields || cl.get_type_parameters ().size > 0)) {
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (cl.get_upper_case_cname (null))));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_PRIVATE".printf (get_ccode_upper_case_name (cl, null))));
ccall.add_argument (new CCodeIdentifier ("self"));
func.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), ccall);
}
private void begin_class_finalize_function (Class cl) {
push_context (class_finalize_context);
- var function = new CCodeFunction ("%s_class_finalize".printf (cl.get_lower_case_cname (null)), "void");
+ var function = new CCodeFunction ("%s_class_finalize".printf (get_ccode_lower_case_name (cl, null)), "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("klass", cl.get_cname () + "Class *"));
+ function.add_parameter (new CCodeParameter ("klass", get_ccode_name (cl) + "Class *"));
push_function (function);
private void begin_base_finalize_function (Class cl) {
push_context (base_finalize_context);
- var function = new CCodeFunction ("%s_base_finalize".printf (cl.get_lower_case_cname (null)), "void");
+ var function = new CCodeFunction ("%s_base_finalize".printf (get_ccode_lower_case_name (cl, null)), "void");
function.modifiers = CCodeModifiers.STATIC;
- function.add_parameter (new CCodeParameter ("klass", cl.get_cname () + "Class *"));
+ function.add_parameter (new CCodeParameter ("klass", get_ccode_name (cl) + "Class *"));
push_function (function);
if (!context.require_glib_version (2, 24) && cl.has_class_private_fields) {
ccode.open_block ();
- var cdecl = new CCodeDeclaration ("%sClassPrivate *".printf (cl.get_cname ()));
+ var cdecl = new CCodeDeclaration ("%sClassPrivate *".printf (get_ccode_name (cl)));
cdecl.add_declarator (new CCodeVariableDeclarator ("priv"));
ccode.add_statement (cdecl);
- var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (cl.get_upper_case_cname (null))));
+ var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS_PRIVATE".printf (get_ccode_upper_case_name (cl, null))));
ccall.add_argument (new CCodeConstant ("klass"));
ccode.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("priv"), ccall)));
ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_free"));
- ccall.add_argument (new CCodeIdentifier ("%sClassPrivate".printf (cl.get_cname ())));
+ ccall.add_argument (new CCodeIdentifier ("%sClassPrivate".printf (get_ccode_name (cl))));
ccall.add_argument (new CCodeIdentifier ("priv"));
ccode.add_statement (new CCodeExpressionStatement (ccall));
fundamental_class = fundamental_class.base_class;
}
- var func = new CCodeFunction ("%s_finalize".printf (cl.get_lower_case_cname (null)));
- func.add_parameter (new CCodeParameter ("obj", fundamental_class.get_cname () + "*"));
+ var func = new CCodeFunction ("%s_finalize".printf (get_ccode_lower_case_name (cl, null)));
+ func.add_parameter (new CCodeParameter ("obj", get_ccode_name (fundamental_class) + "*"));
func.modifiers = CCodeModifiers.STATIC;
push_function (func);
CCodeFunctionCall ccall = generate_instance_cast (new CCodeIdentifier ("obj"), cl);
- ccode.add_declaration ("%s *".printf (cl.get_cname ()), new CCodeVariableDeclarator ("self"));
+ ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self"));
ccode.add_assignment (new CCodeIdentifier ("self"), ccall);
} else {
- var function = new CCodeFunction (cl.get_lower_case_cprefix () + "free", "void");
+ var function = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "free", "void");
if (cl.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
- function.add_parameter (new CCodeParameter ("self", cl.get_cname () + "*"));
+ function.add_parameter (new CCodeParameter ("self", get_ccode_name (cl) + "*"));
push_function (function);
}
// chain up to finalize function of the base class
if (cl.base_class != null) {
- var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (fundamental_class.get_upper_case_cname ())));
- ccast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (cl.get_lower_case_cname (null))));
+ var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (get_ccode_upper_case_name (fundamental_class))));
+ ccast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (get_ccode_lower_case_name (cl, null))));
var ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (ccast, "finalize"));
ccall.add_argument (new CCodeIdentifier ("obj"));
push_context (instance_finalize_context);
cfile.add_function_declaration (instance_finalize_context.ccode);
} else {
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_free"));
- ccall.add_argument (new CCodeIdentifier (cl.get_cname ()));
+ ccall.add_argument (new CCodeIdentifier (get_ccode_name (cl)));
ccall.add_argument (new CCodeIdentifier ("self"));
push_context (instance_finalize_context);
ccode.add_expression (ccall);
public override CCodeFunctionCall get_param_spec (Property prop) {
var cspec = new CCodeFunctionCall ();
- cspec.add_argument (prop.get_canonical_cconstant ());
- cspec.add_argument (new CCodeConstant ("\"%s\"".printf (prop.nick)));
- cspec.add_argument (new CCodeConstant ("\"%s\"".printf (prop.blurb)));
+ cspec.add_argument (get_property_canonical_cconstant (prop));
+ var nick = prop.get_attribute_string ("Description", "nick");
+ if (nick == null) {
+ nick = prop.name.replace ("_", "-");
+ }
+ var blurb = prop.get_attribute_string ("Description", "blurb");
+ if (blurb == null) {
+ blurb = prop.name.replace ("_", "-");
+ }
+ cspec.add_argument (new CCodeConstant ("\"%s\"".printf (nick)));
+ cspec.add_argument (new CCodeConstant ("\"%s\"".printf (blurb)));
if (prop.property_type.data_type is Class || prop.property_type.data_type is Interface) {
- string param_spec_name = prop.property_type.data_type.get_param_spec_function ();
+ string param_spec_name = get_ccode_param_spec_function (prop.property_type.data_type);
cspec.call = new CCodeIdentifier (param_spec_name);
if (param_spec_name == "g_param_spec_string") {
cspec.add_argument (new CCodeConstant ("NULL"));
} else if (param_spec_name == "g_param_spec_variant") {
cspec.add_argument (new CCodeConstant ("G_VARIANT_TYPE_ANY"));
cspec.add_argument (new CCodeConstant ("NULL"));
- } else if (prop.property_type.data_type.get_type_id () != "G_TYPE_POINTER") {
- cspec.add_argument (new CCodeIdentifier (prop.property_type.data_type.get_type_id ()));
+ } else if (get_ccode_type_id (prop.property_type.data_type) != "G_TYPE_POINTER") {
+ cspec.add_argument (new CCodeIdentifier (get_ccode_type_id (prop.property_type.data_type)));
}
} else if (prop.property_type.data_type is Enum) {
var e = prop.property_type.data_type as Enum;
- if (e.has_type_id) {
+ if (get_ccode_has_type_id (e)) {
if (e.is_flags) {
cspec.call = new CCodeIdentifier ("g_param_spec_flags");
} else {
cspec.call = new CCodeIdentifier ("g_param_spec_enum");
}
- cspec.add_argument (new CCodeIdentifier (e.get_type_id ()));
+ cspec.add_argument (new CCodeIdentifier (get_ccode_type_id (e)));
} else {
if (e.is_flags) {
cspec.call = new CCodeIdentifier ("g_param_spec_uint");
if (prop.initializer != null) {
cspec.add_argument ((CCodeExpression) get_ccodenode (prop.initializer));
} else {
- cspec.add_argument (new CCodeConstant (prop.property_type.data_type.get_default_value ()));
+ cspec.add_argument (new CCodeConstant (get_ccode_default_value (prop.property_type.data_type)));
}
} else if (prop.property_type.data_type is Struct) {
var st = (Struct) prop.property_type.data_type;
- if (st.get_type_id () == "G_TYPE_INT") {
+ if (get_ccode_type_id (st) == "G_TYPE_INT") {
cspec.call = new CCodeIdentifier ("g_param_spec_int");
cspec.add_argument (new CCodeConstant ("G_MININT"));
cspec.add_argument (new CCodeConstant ("G_MAXINT"));
} else {
cspec.add_argument (new CCodeConstant ("0"));
}
- } else if (st.get_type_id () == "G_TYPE_UINT") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_UINT") {
cspec.call = new CCodeIdentifier ("g_param_spec_uint");
cspec.add_argument (new CCodeConstant ("0"));
cspec.add_argument (new CCodeConstant ("G_MAXUINT"));
} else {
cspec.add_argument (new CCodeConstant ("0U"));
}
- } else if (st.get_type_id () == "G_TYPE_INT64") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_INT64") {
cspec.call = new CCodeIdentifier ("g_param_spec_int64");
cspec.add_argument (new CCodeConstant ("G_MININT64"));
cspec.add_argument (new CCodeConstant ("G_MAXINT64"));
} else {
cspec.add_argument (new CCodeConstant ("0"));
}
- } else if (st.get_type_id () == "G_TYPE_UINT64") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_UINT64") {
cspec.call = new CCodeIdentifier ("g_param_spec_uint64");
cspec.add_argument (new CCodeConstant ("0"));
cspec.add_argument (new CCodeConstant ("G_MAXUINT64"));
} else {
cspec.add_argument (new CCodeConstant ("0U"));
}
- } else if (st.get_type_id () == "G_TYPE_LONG") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_LONG") {
cspec.call = new CCodeIdentifier ("g_param_spec_long");
cspec.add_argument (new CCodeConstant ("G_MINLONG"));
cspec.add_argument (new CCodeConstant ("G_MAXLONG"));
} else {
cspec.add_argument (new CCodeConstant ("0L"));
}
- } else if (st.get_type_id () == "G_TYPE_ULONG") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_ULONG") {
cspec.call = new CCodeIdentifier ("g_param_spec_ulong");
cspec.add_argument (new CCodeConstant ("0"));
cspec.add_argument (new CCodeConstant ("G_MAXULONG"));
} else {
cspec.add_argument (new CCodeConstant ("0UL"));
}
- } else if (st.get_type_id () == "G_TYPE_BOOLEAN") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_BOOLEAN") {
cspec.call = new CCodeIdentifier ("g_param_spec_boolean");
if (prop.initializer != null) {
cspec.add_argument ((CCodeExpression) get_ccodenode (prop.initializer));
} else {
cspec.add_argument (new CCodeConstant ("FALSE"));
}
- } else if (st.get_type_id () == "G_TYPE_CHAR") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_CHAR") {
cspec.call = new CCodeIdentifier ("g_param_spec_char");
cspec.add_argument (new CCodeConstant ("G_MININT8"));
cspec.add_argument (new CCodeConstant ("G_MAXINT8"));
} else {
cspec.add_argument (new CCodeConstant ("0"));
}
- } else if (st.get_type_id () == "G_TYPE_UCHAR") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_UCHAR") {
cspec.call = new CCodeIdentifier ("g_param_spec_uchar");
cspec.add_argument (new CCodeConstant ("0"));
cspec.add_argument (new CCodeConstant ("G_MAXUINT8"));
} else {
cspec.add_argument (new CCodeConstant ("0"));
}
- }else if (st.get_type_id () == "G_TYPE_FLOAT") {
+ }else if (get_ccode_type_id (st) == "G_TYPE_FLOAT") {
cspec.call = new CCodeIdentifier ("g_param_spec_float");
cspec.add_argument (new CCodeConstant ("-G_MAXFLOAT"));
cspec.add_argument (new CCodeConstant ("G_MAXFLOAT"));
} else {
cspec.add_argument (new CCodeConstant ("0.0F"));
}
- } else if (st.get_type_id () == "G_TYPE_DOUBLE") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_DOUBLE") {
cspec.call = new CCodeIdentifier ("g_param_spec_double");
cspec.add_argument (new CCodeConstant ("-G_MAXDOUBLE"));
cspec.add_argument (new CCodeConstant ("G_MAXDOUBLE"));
} else {
cspec.add_argument (new CCodeConstant ("0.0"));
}
- } else if (st.get_type_id () == "G_TYPE_GTYPE") {
+ } else if (get_ccode_type_id (st) == "G_TYPE_GTYPE") {
cspec.call = new CCodeIdentifier ("g_param_spec_gtype");
if (prop.initializer != null) {
cspec.add_argument ((CCodeExpression) get_ccodenode (prop.initializer));
}
} else {
cspec.call = new CCodeIdentifier ("g_param_spec_boxed");
- cspec.add_argument (new CCodeIdentifier (st.get_type_id ()));
+ cspec.add_argument (new CCodeIdentifier (get_ccode_type_id (st)));
}
} else if (prop.property_type is ArrayType && ((ArrayType)prop.property_type).element_type.data_type == string_type.data_type) {
cspec.call = new CCodeIdentifier ("g_param_spec_boxed");
}
public override void generate_interface_declaration (Interface iface, CCodeFile decl_space) {
- if (add_symbol_declaration (decl_space, iface, iface.get_cname ())) {
+ if (add_symbol_declaration (decl_space, iface, get_ccode_name (iface))) {
return;
}
}
}
- var type_struct = new CCodeStruct ("_%s".printf (iface.get_type_cname ()));
+ var type_struct = new CCodeStruct ("_%s".printf (get_ccode_type_name (iface)));
decl_space.add_type_declaration (new CCodeNewline ());
- var macro = "(%s_get_type ())".printf (iface.get_lower_case_cname (null));
- decl_space.add_type_declaration (new CCodeMacroReplacement (iface.get_type_id (), macro));
+ var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (iface, null));
+ decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (iface), macro));
- macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (iface.get_type_id (), iface.get_cname ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (iface.get_upper_case_cname (null)), macro));
+ macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (get_ccode_type_id (iface), get_ccode_name (iface));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_upper_case_name (iface, null)), macro));
- macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (iface.get_type_id ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_type_check_function (iface)), macro));
+ macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (get_ccode_type_id (iface));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_check_function (iface)), macro));
- macro = "(G_TYPE_INSTANCE_GET_INTERFACE ((obj), %s, %s))".printf (iface.get_type_id (), iface.get_type_cname ());
- decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_GET_INTERFACE(obj)".printf (iface.get_upper_case_cname (null)), macro));
+ macro = "(G_TYPE_INSTANCE_GET_INTERFACE ((obj), %s, %s))".printf (get_ccode_type_id (iface), get_ccode_type_name (iface));
+ decl_space.add_type_declaration (new CCodeMacroReplacement ("%s_GET_INTERFACE(obj)".printf (get_ccode_upper_case_name (iface, null)), macro));
decl_space.add_type_declaration (new CCodeNewline ());
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (iface.get_cname ()), new CCodeVariableDeclarator (iface.get_cname ())));
- decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_struct.name), new CCodeVariableDeclarator (iface.get_type_cname ())));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct _%s".printf (get_ccode_name (iface)), new CCodeVariableDeclarator (get_ccode_name (iface))));
+ decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_struct.name), new CCodeVariableDeclarator (get_ccode_type_name (iface))));
type_struct.add_field ("GTypeInterface", "parent_iface");
bool returns_real_struct = prop.property_type.is_real_non_null_struct_type ();
var this_type = new ObjectType (t);
- var cselfparam = new CCodeParameter ("self", this_type.get_cname ());
+ var cselfparam = new CCodeParameter ("self", get_ccode_name (this_type));
if (prop.get_accessor != null) {
var vdeclarator = new CCodeFunctionDeclarator ("get_%s".printf (prop.name));
vdeclarator.add_parameter (cselfparam);
string creturn_type;
if (returns_real_struct) {
- var cvalueparam = new CCodeParameter ("value", prop.get_accessor.value_type.get_cname () + "*");
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.get_accessor.value_type) + "*");
vdeclarator.add_parameter (cvalueparam);
creturn_type = "void";
} else {
- creturn_type = prop.get_accessor.value_type.get_cname ();
+ creturn_type = get_ccode_name (prop.get_accessor.value_type);
}
var array_type = prop.property_type as ArrayType;
var vdeclarator = new CCodeFunctionDeclarator ("set_%s".printf (prop.name));
vdeclarator.add_parameter (cselfparam);
if (returns_real_struct) {
- var cvalueparam = new CCodeParameter ("value", prop.set_accessor.value_type.get_cname () + "*");
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.set_accessor.value_type) + "*");
vdeclarator.add_parameter (cvalueparam);
} else {
- var cvalueparam = new CCodeParameter ("value", prop.set_accessor.value_type.get_cname ());
+ var cvalueparam = new CCodeParameter ("value", get_ccode_name (prop.set_accessor.value_type));
vdeclarator.add_parameter (cvalueparam);
}
push_context (new EmitContext (iface));
push_line (iface.source_reference);
- if (iface.get_cname().length < 3) {
+ if (get_ccode_name (iface).length < 3) {
iface.error = true;
- Report.error (iface.source_reference, "Interface name `%s' is too short".printf (iface.get_cname ()));
+ Report.error (iface.source_reference, "Interface name `%s' is too short".printf (get_ccode_name (iface)));
return;
}
private void add_interface_base_init_function (Interface iface) {
push_context (new EmitContext (iface));
- var base_init = new CCodeFunction ("%s_base_init".printf (iface.get_lower_case_cname (null)), "void");
- base_init.add_parameter (new CCodeParameter ("iface", "%sIface *".printf (iface.get_cname ())));
+ var base_init = new CCodeFunction ("%s_base_init".printf (get_ccode_lower_case_name (iface, null)), "void");
+ base_init.add_parameter (new CCodeParameter ("iface", "%sIface *".printf (get_ccode_name (iface))));
base_init.modifiers = CCodeModifiers.STATIC;
push_function (base_init);
/* make sure not to run the initialization code twice */
- ccode.add_declaration (bool_type.get_cname (), new CCodeVariableDeclarator ("initialized", new CCodeConstant ("FALSE")), CCodeModifiers.STATIC);
+ ccode.add_declaration (get_ccode_name (bool_type), new CCodeVariableDeclarator ("initialized", new CCodeConstant ("FALSE")), CCodeModifiers.STATIC);
ccode.open_if (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("initialized")));
ccode.add_assignment (new CCodeIdentifier ("initialized"), new CCodeConstant ("TRUE"));
if (sig.default_handler == null) {
continue;
}
- var cname = sig.default_handler.get_real_cname ();
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, sig.default_handler.vfunc_name), new CCodeIdentifier (cname));
+ var cname = get_ccode_real_name (sig.default_handler);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_vfunc_name (sig.default_handler)), new CCodeIdentifier (cname));
}
/* create signals */
// connect default implementations
foreach (Method m in iface.get_methods ()) {
if (m.is_virtual) {
- var cname = m.get_real_cname ();
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.vfunc_name), new CCodeIdentifier (cname));
+ var cname = get_ccode_real_name (m);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_vfunc_name (m)), new CCodeIdentifier (cname));
if (m.coroutine) {
- ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.get_finish_vfunc_name ()), new CCodeIdentifier (m.get_finish_real_cname ()));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_finish_vfunc_name (m)), new CCodeIdentifier (get_ccode_finish_real_name (m)));
}
}
}
public override void visit_struct (Struct st) {
base.visit_struct (st);
- if (st.has_type_id) {
+ if (get_ccode_has_type_id (st)) {
push_line (st.source_reference);
var type_fun = new StructRegisterFunction (st, context);
type_fun.init_from_type (false, false);
public override void visit_enum (Enum en) {
base.visit_enum (en);
- if (en.has_type_id) {
+ if (get_ccode_has_type_id (en)) {
push_line (en.source_reference);
var type_fun = new EnumRegisterFunction (en, context);
type_fun.init_from_type (false, false);
var ma = expr.call as MemberAccess;
var mtype = expr.call.value_type as MethodType;
if (mtype == null || ma == null || ma.inner == null ||
- !(ma.inner.value_type is EnumValueType) || !((Enum) ma.inner.value_type.data_type).has_type_id ||
+ !(ma.inner.value_type is EnumValueType) || !get_ccode_has_type_id (ma.inner.value_type.data_type) ||
mtype.method_symbol != ((EnumValueType) ma.inner.value_type).get_to_string_method ()) {
base.visit_method_call (expr);
return;
emit_temp_var (temp_var);
var class_ref = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_ref"));
- class_ref.add_argument (new CCodeIdentifier (ma.inner.value_type.get_type_id ()));
+ class_ref.add_argument (new CCodeIdentifier (get_ccode_type_id (ma.inner.value_type)));
var get_value = new CCodeFunctionCall (new CCodeIdentifier ("g_enum_get_value"));
get_value.add_argument (class_ref);
get_value.add_argument ((CCodeExpression) get_ccodenode (((MemberAccess) expr.call).inner));
public override void visit_property (Property prop) {
var cl = current_type_symbol as Class;
var st = current_type_symbol as Struct;
- if (prop.name == "type" && ((cl != null && !cl.is_compact) || (st != null && st.has_type_id))) {
+ if (prop.name == "type" && ((cl != null && !cl.is_compact) || (st != null && get_ccode_has_type_id (st)))) {
Report.error (prop.source_reference, "Property 'type' not allowed");
return;
}
static bool is_string_marshalled_enum (TypeSymbol? symbol) {
if (symbol != null && symbol is Enum) {
- var dbus = symbol.get_attribute ("DBus");
- return dbus != null && dbus.get_bool ("use_string_marshalling");
+ return symbol.get_attribute_bool ("DBus", "use_string_marshalling");
}
return false;
}
string get_dbus_value (EnumValue value, string default_value) {
- var dbus = value.get_attribute ("DBus");
- if (dbus == null) {
- return default_value;
+ var dbus_value = value.get_attribute_string ("DBus", "value");
+ if (dbus_value != null) {
+ return dbus_value;;
}
-
- string dbus_value = dbus.get_string ("value");
- if (dbus_value == null) {
- return default_value;
- }
- return dbus_value;
+ return default_value;
}
public static string? get_dbus_signature (Symbol symbol) {
- var dbus = symbol.get_attribute ("DBus");
- if (dbus == null) {
- return null;
- }
-
- return dbus.get_string ("signature");
+ return symbol.get_attribute_string ("DBus", "signature");
}
bool get_basic_type_info (string signature, out BasicTypeInfo basic_type) {
} else if (is_string_marshalled_enum (datatype.data_type)) {
return "s";
} else if (datatype.data_type != null) {
- string sig = null;
-
- var ccode = datatype.data_type.get_attribute ("CCode");
- if (ccode != null) {
- sig = ccode.get_string ("type_signature");
- }
+ string sig = datatype.data_type.get_attribute_string ("CCode", "type_signature");
var st = datatype.data_type as Struct;
var en = datatype.data_type as Enum;
CCodeExpression? generate_enum_value_from_string (EnumValueType type, CCodeExpression? expr, CCodeExpression? error_expr) {
var en = type.type_symbol as Enum;
- var from_string_name = "%s_from_string".printf (en.get_lower_case_cname (null));
+ var from_string_name = "%s_from_string".printf (get_ccode_lower_case_name (en, null));
var from_string_call = new CCodeFunctionCall (new CCodeIdentifier (from_string_name));
from_string_call.add_argument (expr);
}
public CCodeFunction generate_enum_from_string_function_declaration (Enum en) {
- var from_string_name = "%s_from_string".printf (en.get_lower_case_cname (null));
+ var from_string_name = "%s_from_string".printf (get_ccode_lower_case_name (en, null));
- var from_string_func = new CCodeFunction (from_string_name, en.get_cname ());
+ var from_string_func = new CCodeFunction (from_string_name, get_ccode_name (en));
from_string_func.add_parameter (new CCodeParameter ("str", "const char*"));
from_string_func.add_parameter (new CCodeParameter ("error", "GError**"));
}
public CCodeFunction generate_enum_from_string_function (Enum en) {
- var from_string_name = "%s_from_string".printf (en.get_lower_case_cname (null));
+ var from_string_name = "%s_from_string".printf (get_ccode_lower_case_name (en, null));
- var from_string_func = new CCodeFunction (from_string_name, en.get_cname ());
+ var from_string_func = new CCodeFunction (from_string_name, get_ccode_name (en));
from_string_func.add_parameter (new CCodeParameter ("str", "const char*"));
from_string_func.add_parameter (new CCodeParameter ("error", "GError**"));
push_function (from_string_func);
- ccode.add_declaration (en.get_cname (), new CCodeVariableDeclarator.zero ("value", new CCodeConstant ("0")));
+ ccode.add_declaration (get_ccode_name (en), new CCodeVariableDeclarator.zero ("value", new CCodeConstant ("0")));
bool firstif = true;
foreach (EnumValue enum_value in en.get_values ()) {
} else {
ccode.else_if (cond);
}
- ccode.add_assignment (new CCodeIdentifier ("value"), new CCodeIdentifier (enum_value.get_cname ()));
+ ccode.add_assignment (new CCodeIdentifier ("value"), new CCodeIdentifier (get_ccode_name (enum_value)));
}
ccode.add_else ();
set_error.add_argument (new CCodeIdentifier ("error"));
set_error.add_argument (new CCodeIdentifier ("G_DBUS_ERROR"));
set_error.add_argument (new CCodeIdentifier ("G_DBUS_ERROR_INVALID_ARGS"));
- set_error.add_argument (new CCodeConstant ("\"Invalid value for enum `%s'\"".printf (en.get_cname ())));
+ set_error.add_argument (new CCodeConstant ("\"Invalid value for enum `%s'\"".printf (get_ccode_name (en))));
ccode.add_expression (set_error);
ccode.close ();
string temp_name = "_tmp%d_".printf (next_temp_var_id++);
var new_call = new CCodeFunctionCall (new CCodeIdentifier ("g_new"));
- new_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ new_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
// add one extra element for NULL-termination
new_call.add_argument (new CCodeConstant ("5"));
- ccode.add_declaration (array_type.get_cname (), new CCodeVariableDeclarator (temp_name, new_call));
+ ccode.add_declaration (get_ccode_name (array_type), new CCodeVariableDeclarator (temp_name, new_call));
ccode.add_declaration ("int", new CCodeVariableDeclarator (temp_name + "_length", new CCodeConstant ("0")));
ccode.add_declaration ("int", new CCodeVariableDeclarator (temp_name + "_size", new CCodeConstant ("4")));
ccode.add_assignment (new CCodeIdentifier (temp_name + "_size"), new_size);
var renew_call = new CCodeFunctionCall (new CCodeIdentifier ("g_renew"));
- renew_call.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
+ renew_call.add_argument (new CCodeIdentifier (get_ccode_name (array_type.element_type)));
renew_call.add_argument (new CCodeIdentifier (temp_name));
// add one extra element for NULL-termination
renew_call.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier (temp_name + "_size"), new CCodeConstant ("1")));
string temp_name = "_tmp%d_".printf (next_temp_var_id++);
string subiter_name = "_tmp%d_".printf (next_temp_var_id++);
- ccode.add_declaration (st.get_cname (), new CCodeVariableDeclarator (temp_name));
+ ccode.add_declaration (get_ccode_name (st), new CCodeVariableDeclarator (temp_name));
ccode.add_declaration ("GVariantIter", new CCodeVariableDeclarator (subiter_name));
var iter_call = new CCodeFunctionCall (new CCodeIdentifier ("g_variant_iter_init"));
field_found = true;
- read_expression (f.variable_type, new CCodeIdentifier (subiter_name), new CCodeMemberAccess (new CCodeIdentifier (temp_name), f.get_cname ()), f);
+ read_expression (f.variable_type, new CCodeIdentifier (subiter_name), new CCodeMemberAccess (new CCodeIdentifier (temp_name), get_ccode_name (f)), f);
}
if (!field_found) {
result = deserialize_struct (st, variant_expr);
if (result != null && type.nullable) {
var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- csizeof.add_argument (new CCodeIdentifier (st.get_cname ()));
+ csizeof.add_argument (new CCodeIdentifier (get_ccode_name (st)));
var cdup = new CCodeFunctionCall (new CCodeIdentifier ("g_memdup"));
cdup.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, result));
cdup.add_argument (csizeof);
CCodeExpression? generate_enum_value_to_string (EnumValueType type, CCodeExpression? expr) {
var en = type.type_symbol as Enum;
- var to_string_name = "%s_to_string".printf (en.get_lower_case_cname (null));
+ var to_string_name = "%s_to_string".printf (get_ccode_lower_case_name (en, null));
var to_string_call = new CCodeFunctionCall (new CCodeIdentifier (to_string_name));
to_string_call.add_argument (expr);
}
public CCodeFunction generate_enum_to_string_function_declaration (Enum en) {
- var to_string_name = "%s_to_string".printf (en.get_lower_case_cname (null));
+ var to_string_name = "%s_to_string".printf (get_ccode_lower_case_name (en, null));
var to_string_func = new CCodeFunction (to_string_name, "const char*");
- to_string_func.add_parameter (new CCodeParameter ("value", en.get_cname ()));
+ to_string_func.add_parameter (new CCodeParameter ("value", get_ccode_name (en)));
return to_string_func;
}
public CCodeFunction generate_enum_to_string_function (Enum en) {
- var to_string_name = "%s_to_string".printf (en.get_lower_case_cname (null));
+ var to_string_name = "%s_to_string".printf (get_ccode_lower_case_name (en, null));
var to_string_func = new CCodeFunction (to_string_name, "const char*");
- to_string_func.add_parameter (new CCodeParameter ("value", en.get_cname ()));
+ to_string_func.add_parameter (new CCodeParameter ("value", get_ccode_name (en)));
push_function (to_string_func);
ccode.open_switch (new CCodeIdentifier ("value"));
foreach (EnumValue enum_value in en.get_values ()) {
string dbus_value = get_dbus_value (enum_value, enum_value.name);
- ccode.add_case (new CCodeIdentifier (enum_value.get_cname ()));
+ ccode.add_case (new CCodeIdentifier (get_ccode_name (enum_value)));
ccode.add_assignment (new CCodeIdentifier ("str"), new CCodeConstant ("\"%s\"".printf (dbus_value)));
ccode.add_break ();
}
CCodeExpression? serialize_array (ArrayType array_type, CCodeExpression array_expr) {
string array_iter_name = "_tmp%d_".printf (next_temp_var_id++);
- ccode.add_declaration (array_type.get_cname (), new CCodeVariableDeclarator (array_iter_name));
+ ccode.add_declaration (get_ccode_name (array_type), new CCodeVariableDeclarator (array_iter_name));
ccode.add_assignment (new CCodeIdentifier (array_iter_name), array_expr);
return serialize_array_dim (array_type, 1, array_expr, new CCodeIdentifier (array_iter_name));
field_found = true;
- write_expression (f.variable_type, new CCodeIdentifier (builder_name), new CCodeMemberAccess (struct_expr, f.get_cname ()), f);
+ write_expression (f.variable_type, new CCodeIdentifier (builder_name), new CCodeMemberAccess (struct_expr, get_ccode_name (f)), f);
}
if (!field_found) {
ccode.open_while (iter_next_call);
- ccode.add_declaration (key_type.get_cname (), new CCodeVariableDeclarator ("_key"));
- ccode.add_declaration (value_type.get_cname (), new CCodeVariableDeclarator ("_value"));
+ ccode.add_declaration (get_ccode_name (key_type), new CCodeVariableDeclarator ("_key"));
+ ccode.add_declaration (get_ccode_name (value_type), new CCodeVariableDeclarator ("_value"));
ccode.add_assignment (new CCodeIdentifier ("_key"), convert_from_generic_pointer (new CCodeIdentifier (key_name), key_type));
ccode.add_assignment (new CCodeIdentifier ("_value"), convert_from_generic_pointer (new CCodeIdentifier (value_name), value_type));
}
public override string get_type_struct_name () {
- return interface_reference.get_type_cname ();
+ return CCodeBaseModule.get_ccode_type_name (interface_reference);
}
public override string get_base_init_func_name () {
- return "%s_base_init".printf (interface_reference.get_lower_case_cname (null));
+ return "%s_base_init".printf (CCodeBaseModule.get_ccode_lower_case_name (interface_reference));
}
public override string get_class_finalize_func_name () {
var prereq = prereq_ref.data_type;
var func = new CCodeFunctionCall (new CCodeIdentifier ("g_type_interface_add_prerequisite"));
- func.add_argument (new CCodeIdentifier ("%s_type_id".printf (interface_reference.get_lower_case_cname (null))));
- func.add_argument (new CCodeIdentifier (prereq.get_type_id()));
+ func.add_argument (new CCodeIdentifier ("%s_type_id".printf (CCodeBaseModule.get_ccode_lower_case_name (interface_reference))));
+ func.add_argument (new CCodeIdentifier (CCodeBaseModule.get_ccode_type_id (prereq)));
block.add_statement (new CCodeExpressionStatement (func));
}
fundamental = true;
}
- string type_id_name = "%s_type_id".printf (get_type_declaration ().get_lower_case_cname (null));
+ string type_id_name = "%s_type_id".printf (CCodeBaseModule.get_ccode_lower_case_name (get_type_declaration ()));
var type_block = new CCodeBlock ();
CCodeDeclaration cdecl;
CCodeFunction fun;
if (!plugin) {
- fun = new CCodeFunction ("%s_get_type".printf (get_type_declaration ().get_lower_case_cname (null)), "GType");
+ fun = new CCodeFunction ("%s_get_type".printf (CCodeBaseModule.get_ccode_lower_case_name (get_type_declaration ())), "GType");
fun.attributes = "G_GNUC_CONST";
/* Function will not be prototyped anyway */
fun.attributes += " G_GNUC_UNUSED";
}
} else {
- fun = new CCodeFunction ("%s_register_type".printf (get_type_declaration ().get_lower_case_cname (null)), "GType");
+ fun = new CCodeFunction ("%s_register_type".printf (CCodeBaseModule.get_ccode_lower_case_name (get_type_declaration ())), "GType");
fun.add_parameter (new CCodeParameter ("module", "GTypeModule *"));
- var get_fun = new CCodeFunction ("%s_get_type".printf (get_type_declaration ().get_lower_case_cname (null)), "GType");
+ var get_fun = new CCodeFunction ("%s_get_type".printf (CCodeBaseModule.get_ccode_lower_case_name (get_type_declaration ())), "GType");
get_fun.attributes = "G_GNUC_CONST";
get_fun.is_declaration = true;
quark_reg_call = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_static_string"));
}
- quark_reg_call.add_argument (new CCodeConstant ("\"Vala%sClassPrivate\"".printf (get_type_declaration ().get_cname ())));
+ quark_reg_call.add_argument (new CCodeConstant ("\"Vala%sClassPrivate\"".printf (CCodeBaseModule.get_ccode_name (get_type_declaration ()))));
- type_init.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_vala_%s_class_private_quark".printf (get_type_declaration ().get_lower_case_cname ())), quark_reg_call)));
+ type_init.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_vala_%s_class_private_quark".printf (CCodeBaseModule.get_ccode_lower_case_name (get_type_declaration ()))), quark_reg_call)));
}
CCodeFunctionCall reg_call;
reg_call.add_argument (new CCodeIdentifier ("module"));
reg_call.add_argument (new CCodeIdentifier (get_parent_type_name ()));
}
- reg_call.add_argument (new CCodeConstant ("\"%s\"".printf (get_type_declaration ().get_cname ())));
+ reg_call.add_argument (new CCodeConstant ("\"%s\"".printf (CCodeBaseModule.get_ccode_name (get_type_declaration ()))));
if (get_type_declaration () is Struct) {
var st = (Struct) get_type_declaration ();
- reg_call.add_argument (new CCodeCastExpression (new CCodeIdentifier (st.get_dup_function ()), "GBoxedCopyFunc"));
- reg_call.add_argument (new CCodeCastExpression (new CCodeIdentifier (st.get_free_function ()), "GBoxedFreeFunc"));
+ reg_call.add_argument (new CCodeCastExpression (new CCodeIdentifier (CCodeBaseModule.get_ccode_dup_function (st)), "GBoxedCopyFunc"));
+ reg_call.add_argument (new CCodeCastExpression (new CCodeIdentifier (CCodeBaseModule.get_ccode_free_function (st)), "GBoxedFreeFunc"));
} else if (get_type_declaration () is Enum) {
var en = get_type_declaration () as Enum;
var clist = new CCodeInitializerList (); /* or during visit time? */
CCodeInitializerList clist_ev = null;
foreach (EnumValue ev in en.get_values ()) {
clist_ev = new CCodeInitializerList ();
- clist_ev.append (new CCodeConstant (ev.get_cname ()));
- clist_ev.append (new CCodeIdentifier ("\"%s\"".printf (ev.get_cname ())));
+ clist_ev.append (new CCodeConstant (CCodeBaseModule.get_ccode_name (ev)));
+ clist_ev.append (new CCodeIdentifier ("\"%s\"".printf (CCodeBaseModule.get_ccode_name (ev))));
clist_ev.append (ev.get_canonical_cconstant ());
clist.append (clist_ev);
}
add_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_add_class_private"));
add_class_private_call.add_argument (new CCodeIdentifier (type_id_name));
- add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf (get_type_declaration ().get_cname ())));
+ add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf (CCodeBaseModule.get_ccode_name (get_type_declaration ()))));
type_init.add_statement (new CCodeExpressionStatement (add_class_private_call));
}