[vala/wip/attributes: 87/119] Fixing last bits
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/attributes: 87/119] Fixing last bits
- Date: Mon, 4 Jul 2011 10:29:24 +0000 (UTC)
commit 962fb70e486919041663276e3e96c193a3ec47f7
Author: Luca Bruno <lucabru src gnome org>
Date: Thu Jun 30 13:05:27 2011 +0200
Fixing last bits
codegen/valaccodebasemodule.vala | 151 +++++++++++++++------------
codegen/valaccodestructmodule.vala | 10 +--
codegen/valaclassregisterfunction.vala | 4 +-
codegen/valactype.vala | 4 -
codegen/valadovabasemodule.vala | 60 ++++++++----
codegen/valadovadelegatemodule.vala | 16 ++--
codegen/valadovaerrormodule.vala | 8 +-
codegen/valadovamemberaccessmodule.vala | 8 +-
codegen/valadovamethodcallmodule.vala | 4 +-
codegen/valadovaobjectmodule.vala | 138 +++++++++++++-------------
codegen/valadovavaluemodule.vala | 66 ++++++------
codegen/valagasyncmodule.vala | 2 +-
codegen/valagdbusmodule.vala | 2 +-
codegen/valagirwriter.vala | 70 +++++++-------
codegen/valagsignalmodule.vala | 2 +-
codegen/valagtypemodule.vala | 16 ++--
codegen/valainterfaceregisterfunction.vala | 4 +-
vala/valaattribute.vala | 8 ++-
vala/valadelegate.vala | 7 +-
vala/valaerrordomain.vala | 3 -
vala/valagenieparser.vala | 4 +-
vala/valagirparser.vala | 11 +--
vala/valalambdaexpression.vala | 2 +-
vala/valamethod.vala | 10 +-
vala/valaparser.vala | 3 +-
vala/valastruct.vala | 8 +-
vapigen/valagidlparser.vala | 13 +--
27 files changed, 328 insertions(+), 306 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index bb3e1ca..7864374 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -307,8 +307,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
public static int ccode_attribute_hash = CodeNode.get_attribute_hash ();
- public static int dynamic_method_id;
-
public CCodeBaseModule () {
predefined_marshal_set = new HashSet<string> (str_hash, str_equal);
predefined_marshal_set.add ("VOID:VOID");
@@ -893,7 +891,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
decl_space.add_type_member_declaration (flock);
}
- if (f.variable_type is ArrayType && !get_ccode_no_array_length (get_ccode) (f)) {
+ if (f.variable_type is ArrayType && !get_ccode_no_array_length (f)) {
var array_type = (ArrayType) f.variable_type;
if (!array_type.fixed_length) {
@@ -969,7 +967,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
ccode.add_assignment (lhs, rhs);
- if (f.variable_type is ArrayType && !get_ccode_no_array_length (get_ccode) (f) &&
+ if (f.variable_type is ArrayType && !get_ccode_no_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));
@@ -1074,7 +1072,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
cfile.add_type_member_declaration (var_def);
/* add array length fields where necessary */
- if (f.variable_type is ArrayType && !get_ccode_no_array_length (get_ccode) (f)) {
+ if (f.variable_type is ArrayType && !get_ccode_no_array_length (f)) {
var array_type = (ArrayType) f.variable_type;
if (!array_type.fixed_length) {
@@ -2244,12 +2242,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
} else if (cl != null && cl.is_immutable) {
// allow duplicates of immutable instances as for example strings
- dup_function = get_ccode_dup_function (type.data_type) ();
+ dup_function = get_ccode_dup_function (type.data_type);
} else if (cl != null && get_ccode_is_gboxed (cl)) {
// allow duplicates of gboxed instances
dup_function = generate_dup_func_wrapper (type);
} else if (type is ValueType) {
- dup_function = get_ccode_dup_function (type.data_type) ();
+ dup_function = get_ccode_dup_function (type.data_type);
if (dup_function == "" && type.nullable) {
dup_function = generate_struct_dup_wrapper ((ValueType) type);
}
@@ -3204,7 +3202,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
// return array length if appropriate
- if (((current_method != null && !get_ccode_no_array_length (current_method) || current_property_accessor != null) && current_return_type is ArrayType) {
+ if (((current_method != null && !get_ccode_no_array_length (current_method)) || current_property_accessor != null) && current_return_type is ArrayType) {
var return_expr_decl = get_temp_variable (stmt.return_expression.value_type, true, stmt, false);
ccode.add_assignment (get_variable_cexpression (return_expr_decl.name), get_cvalue (stmt.return_expression));
@@ -4953,16 +4951,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public override void visit_lambda_expression (LambdaExpression lambda) {
- // use instance position from delegate
- var dt = (DelegateType) lambda.target_type;
- foreach (var attr in lambda.attributes) {
- var copy = new Attribute (attr.name, attr.source_reference);
- foreach (var arg in attr.args) {
- copy.add_argument (arg, attr.args[arg]);
- }
- lambda.method.attributes.append (copy);
- }
-
lambda.accept_children (this);
bool expr_owned = lambda.value_type.value_owned;
@@ -5601,7 +5589,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
public static string get_ccode_upper_case_name (Symbol sym, string? infix = null) {
if (sym is Property) {
- return "%s_%s".printf (sym.parent_symbol.get_lower_case_cname (null), Symbol.camel_case_to_lower_case (sym.name)).up ();
+ 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 ();
}
@@ -5682,7 +5670,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public static string get_ccode_marshaller_type_name (CodeNode node) {
- return get_ccode_attribute(sym).marshaller_type_name;
+ return get_ccode_attribute(node).marshaller_type_name;
}
public static string get_ccode_get_value_function (CodeNode sym) {
@@ -5707,9 +5695,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
if (cl != null && a != null) {
return a;
} else if ((cl != null && cl.is_compact) || sym is Struct || sym is Enum || sym is Delegate) {
- return null;
+ return "";
} else {
- return get_ccode_upper_case_cname (sym, "IS_");
+ return get_ccode_upper_case_name (sym, "IS_");
}
}
@@ -5746,11 +5734,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public static bool get_ccode_no_array_length (CodeNode node) {
- return get_ccode_attribute(sym).no_array_length;
+ return get_ccode_attribute(node).no_array_length;
}
public static string? get_ccode_array_length_type (CodeNode node) {
- return get_ccode_attribute(sym).array_length_type;
+ return get_ccode_attribute(node).array_length_type;
}
public static double get_ccode_array_length_pos (CodeNode node) {
@@ -5801,7 +5789,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public static bool get_ccode_simple_generics (Method m) {
- return node.get_attribute_bool ("CCode", "simple_generics");
+ return m.get_attribute_bool ("CCode", "simple_generics");
}
public static string get_ccode_real_name (Method m) {
@@ -5829,7 +5817,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public static bool get_ccode_has_type_id (TypeSymbol sym) {
- var a = st.get_attribute ("CCode");
+ var a = sym.get_attribute ("CCode");
if (a != null && a.has_argument ("has_type_id")) {
return a.get_bool ("has_type_id");
}
@@ -6233,7 +6221,7 @@ public class Vala.CCodeAttribute : AttributeCache {
public string type_name {
get {
if (_type_name == null) {
- _type_name = "%sIface".printf (((Interface) node).name);
+ _type_name = "%sIface".printf (CCodeBaseModule.get_ccode_name (sym));
}
return _type_name;
}
@@ -6420,11 +6408,13 @@ public class Vala.CCodeAttribute : AttributeCache {
var param = (Parameter) node;
var sym = param.parent_symbol;
if (sym is Method) {
- _pos = ((Method) sym).get_parameters().index_of (param) + 1;
+ _pos = ((Method) sym).get_parameters().index_of (param) + 1.0;
} else if (sym is Delegate) {
- _pos = ((Delegate) sym).get_parameters().index_of (param) + 1;
+ _pos = ((Delegate) sym).get_parameters().index_of (param) + 1.0;
} else if (sym is Signal) {
- _pos = ((Signal) sym).get_parameters().index_of (param) + 1;
+ _pos = ((Signal) sym).get_parameters().index_of (param) + 1.0;
+ } else {
+ _pos = 0.0;
}
}
return _pos;
@@ -6505,6 +6495,9 @@ public class Vala.CCodeAttribute : AttributeCache {
private string _finish_name;
private string _finish_vfunc_name;
private string _finish_real_name;
+ private string _real_name;
+
+ private static int dynamic_method_id;
public CCodeAttribute (CodeNode node) {
this.node = node;
@@ -6561,6 +6554,19 @@ public class Vala.CCodeAttribute : AttributeCache {
Report.deprecated (node.source_reference, "NoArrayLength attribute is deprecated, use [CCode (array_length = false)] instead.");
no_array_length = true;
}
+ if (_name == null && sym != null && !sym.external && sym is Struct) {
+ var st = (Struct) sym;
+ if (st.is_boolean_type ()) {
+ // typedef for boolean types
+ _name = "bool";
+ } else if (st.is_integer_type ()) {
+ // typedef for integral types
+ _name = "%sint%d_t".printf (st.signed ? "" : "u", st.width);
+ } else if (st.is_floating_type ()) {
+ // typedef for floating types
+ _name = st.width == 64 ? "double" : "float";
+ }
+ }
}
private string get_default_name () {
@@ -6592,7 +6598,7 @@ public class Vala.CCodeAttribute : AttributeCache {
} else if (sym is Method) {
var m = (Method) sym;
if (m.is_async_callback) {
- return "%s_co".printf (get_ccode_real_name (m.parent_symbol));
+ return "%s_co".printf (CCodeBaseModule.get_ccode_real_name ((Method) m.parent_symbol));
}
if (sym.name == "main" && sym.parent_symbol.name == null) {
// avoid conflict with generated main function
@@ -6690,6 +6696,8 @@ public class Vala.CCodeAttribute : AttributeCache {
} else {
return cname;
}
+ } else if (node is CType) {
+ return ((CType) node).ctype_name;
} else {
Report.error (node.source_reference, "Unresolved type reference");
return "";
@@ -6715,7 +6723,7 @@ public class Vala.CCodeAttribute : AttributeCache {
if (sym is ObjectTypeSymbol) {
return name;
} else if (sym is Enum || sym is ErrorDomain) {
- return "%s_".printf (get_ccode_upper_case_name (sym));
+ return "%s_".printf (CCodeBaseModule.get_ccode_upper_case_name (sym));
} else if (sym is Namespace) {
if (sym.name != null) {
var parent_prefix = "";
@@ -6739,6 +6747,9 @@ public class Vala.CCodeAttribute : AttributeCache {
} else {
return "%s%s_".printf (CCodeBaseModule.get_ccode_lower_case_prefix (sym.parent_symbol), Symbol.camel_case_to_lower_case (sym.name));
}
+ } else if (sym is Method) {
+ // for lambda expressions
+ return "";
} else {
return "%s_".printf (CCodeBaseModule.get_ccode_lower_case_name (sym));
}
@@ -6758,9 +6769,10 @@ public class Vala.CCodeAttribute : AttributeCache {
csuffix = csuffix.substring (0, csuffix.length - "_class".length) + "class";
}
return csuffix;
- } else {
+ } else if (sym.name != null) {
return Symbol.camel_case_to_lower_case (sym.name);
}
+ return "";
}
private string get_default_ref_function () {
@@ -6833,28 +6845,33 @@ public class Vala.CCodeAttribute : AttributeCache {
private string get_default_type_id () {
if (sym != null) {
if (sym is Class && !((Class) sym).is_compact || sym is Interface) {
- return get_ccode_upper_case_name (sym, "TYPE_");
+ return CCodeBaseModule.get_ccode_upper_case_name (sym, "TYPE_");
} else if (sym is ErrorType && sym.source_reference != null && sym.source_reference.file.context.require_glib_version (2, 26)) {
return "G_TYPE_ERROR";
} else if (sym is Struct) {
var st = (Struct) sym;
- if (!get_ccode_has_type_id (st)) {
+ if (!CCodeBaseModule.get_ccode_has_type_id (st)) {
var base_struct = st.base_struct;
if (base_struct != null) {
return CCodeBaseModule.get_ccode_type_id (base_struct);
}
if (!st.is_simple_type ()) {
return "G_TYPE_POINTER";
+ }
+ } else {
+ return CCodeBaseModule.get_ccode_upper_case_name (st, "TYPE_");
}
+ } else if (sym is Enum) {
+ var en = (Enum) sym;
+ if (CCodeBaseModule.get_ccode_has_type_id (en)) {
+ return CCodeBaseModule.get_ccode_upper_case_name (en, "TYPE_");
} else {
- return get_ccode_upper_case_name (st, "TYPE_");
+ return en.is_flags ? "G_TYPE_UINT" : "G_TYPE_INT";
}
- } else if (sym is VoidType) {
- return "G_TYPE_NONE";
} else {
return "G_TYPE_POINTER";
}
- } else if (node is ArrayType && ((ArrayType) node).element_type.data_type == string_type.data_type) {
+ } else if (node is ArrayType && ((ArrayType) node).element_type.data_type.get_full_name () == "string") {
return "G_TYPE_STRV";
} else if (node is PointerType || node is DelegateType) {
return "G_TYPE_POINTER";
@@ -6880,9 +6897,9 @@ public class Vala.CCodeAttribute : AttributeCache {
if (sym is Class) {
var cl = (Class) sym;
if (cl.base_class != null) {
- return CCodeBaseModule.get_ccode_marshaller_type_name ();
+ return CCodeBaseModule.get_ccode_marshaller_type_name (cl.base_class);
} else if (!cl.is_compact) {
- return cl.get_uppwer_case_cname ();
+ return CCodeBaseModule.get_ccode_upper_case_name (cl);
} else if (type_id == "G_TYPE_POINTER") {
return "POINTER";
} else {
@@ -6890,7 +6907,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
} else if (sym is Enum) {
var en = (Enum) sym;
- if (get_ccode_has_type_id (en)) {
+ if (CCodeBaseModule.get_ccode_has_type_id (en)) {
if (en.is_flags) {
return "FLAGS";
} else {
@@ -6919,7 +6936,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
if (st.is_simple_type ()) {
Report.error (st.source_reference, "The type `%s` doesn't declare a marshaller type name".printf (st.get_full_name ()));
- } else if (get_ccode_has_type_id (st)) {
+ } else if (CCodeBaseModule.get_ccode_has_type_id (st)) {
return "BOXED";
} else {
return "POINTER";
@@ -6939,7 +6956,7 @@ public class Vala.CCodeAttribute : AttributeCache {
} else if (node is ErrorType) {
return "POINTER";
} else if (node is ArrayType) {
- if (((ArrayType) t).element_type.data_type == string_type.data_type) {
+ if (((ArrayType) node).element_type.data_type.get_full_name () == "string") {
return "BOXED,INT";
} else {
return "POINTER,INT";
@@ -6947,8 +6964,9 @@ public class Vala.CCodeAttribute : AttributeCache {
} else if (node is VoidType) {
return "VOID";
} else {
- return CCodeBaseModule.get_ccode_marshaller_type_name (((DataType) node).dat_type);
+ return CCodeBaseModule.get_ccode_marshaller_type_name (((DataType) node).data_type);
}
+ return "";
}
private string get_default_get_value_function () {
@@ -6965,7 +6983,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
} else if (sym is Enum) {
var en = (Enum) sym;
- if (get_ccode_has_type_id (en)) {
+ if (CCodeBaseModule.get_ccode_has_type_id (en)) {
if (en.is_flags) {
return "g_value_get_flags";
} else {
@@ -6994,7 +7012,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
if (st.is_simple_type ()) {
Report.error (st.source_reference, "The type `%s` doesn't declare a GValue get function".printf (st.get_full_name ()));
- } else if (get_ccode_has_type_id (st)) {
+ } else if (CCodeBaseModule.get_ccode_has_type_id (st)) {
return "g_value_get_boxed";
} else {
return "g_value_get_pointer";
@@ -7009,7 +7027,7 @@ public class Vala.CCodeAttribute : AttributeCache {
if (sym is Class) {
var cl = (Class) sym;
if (cl.is_fundamental ()) {
- return CCodeBaseModule.get_ccode_lower_case_cname (cl, "value_set_");
+ return CCodeBaseModule.get_ccode_lower_case_name (cl, "value_set_");
} else if (cl.base_class != null) {
return CCodeBaseModule.get_ccode_set_value_function (cl.base_class);
} else if (type_id == "G_TYPE_POINTER") {
@@ -7019,7 +7037,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
} else if (sym is Enum) {
var en = (Enum) sym;
- if (get_ccode_has_type_id (en)) {
+ if (CCodeBaseModule.get_ccode_has_type_id (en)) {
if (en.is_flags) {
return "g_value_set_flags";
} else {
@@ -7048,7 +7066,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
if (st.is_simple_type ()) {
Report.error (st.source_reference, "The type `%s` doesn't declare a GValue set function".printf (st.get_full_name ()));
- } else if (get_ccode_has_type_id (st)) {
+ } else if (CCodeBaseModule.get_ccode_has_type_id (st)) {
return "g_value_set_boxed";
} else {
return "g_value_set_pointer";
@@ -7063,7 +7081,7 @@ public class Vala.CCodeAttribute : AttributeCache {
if (sym is Class) {
var cl = (Class) sym;
if (cl.is_fundamental ()) {
- return CCodeBaseModule.get_ccode_lower_case_cname (cl, "value_take_");
+ return CCodeBaseModule.get_ccode_lower_case_name (cl, "value_take_");
} else if (cl.base_class != null) {
return CCodeBaseModule.get_ccode_take_value_function (cl.base_class);
} else if (type_id == "G_TYPE_POINTER") {
@@ -7073,7 +7091,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
} else if (sym is Enum) {
var en = (Enum) sym;
- if (get_ccode_has_type_id (en)) {
+ if (CCodeBaseModule.get_ccode_has_type_id (en)) {
if (en.is_flags) {
return "g_value_take_flags";
} else {
@@ -7102,7 +7120,7 @@ public class Vala.CCodeAttribute : AttributeCache {
}
if (st.is_simple_type ()) {
Report.error (st.source_reference, "The type `%s` doesn't declare a GValue take function".printf (st.get_full_name ()));
- } else if (get_ccode_has_type_id (st)) {
+ } else if (CCodeBaseModule.get_ccode_has_type_id (st)) {
return "g_value_take_boxed";
} else {
return "g_value_set_pointer";
@@ -7117,7 +7135,7 @@ public class Vala.CCodeAttribute : AttributeCache {
if (sym is Class) {
var cl = (Class) sym;
if (cl.is_fundamental ()) {
- return CCodeBaseModule.get_ccode_lower_case_cname (cl, "value_take_");
+ return CCodeBaseModule.get_ccode_lower_case_name (cl, "value_take_");
} else if (cl.base_class != null) {
return CCodeBaseModule.get_ccode_param_spec_function (cl.base_class);
} else if (type_id == "G_TYPE_POINTER") {
@@ -7140,23 +7158,22 @@ public class Vala.CCodeAttribute : AttributeCache {
private string get_default_default_value () {
if (sym is Enum) {
return "0";
- }
-
- var st = (Struct) sym;
- var base_st = st.base_struct;
+ } else if (sym is Struct) {
+ var st = (Struct) sym;
+ var base_st = st.base_struct;
- if (base_st != null) {
- return CCodeBaseModule.get_ccode_default_value (base_st);
- }
+ if (base_st != null) {
+ return CCodeBaseModule.get_ccode_default_value (base_st);
+ }
- if (CodeContext.get ().profile == Profile.DOVA) {
- if (st.is_boolean_type ()) {
- return "false";
- } else if (st.is_integer_type () || st.is_floating_type ()) {
- return "0";
+ if (CodeContext.get ().profile == Profile.DOVA) {
+ if (st.is_boolean_type ()) {
+ return "false";
+ } else if (st.is_integer_type () || st.is_floating_type ()) {
+ return "0";
+ }
}
}
-
return "";
}
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index f141739..0c115bd 100644
--- a/codegen/valaccodestructmodule.vala
+++ b/codegen/valaccodestructmodule.vala
@@ -33,16 +33,10 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
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;
}
@@ -113,7 +107,7 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
decl_space.add_type_declaration (new CCodeTypeDefinition (get_ccode_name (st.base_struct), new CCodeVariableDeclarator (get_ccode_name (st))));
}
- var function = new CCodeFunction (get_ccode_dup_function (st) (), get_ccode_name (st) + "*");
+ var function = new CCodeFunction (get_ccode_dup_function (st), get_ccode_name (st) + "*");
if (st.is_private_symbol ()) {
function.modifiers = CCodeModifiers.STATIC;
}
@@ -184,7 +178,7 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
}
void add_struct_dup_function (Struct st) {
- var function = new CCodeFunction (get_ccode_dup_function (st) (), get_ccode_name (st) + "*");
+ var function = new CCodeFunction (get_ccode_dup_function (st), get_ccode_name (st) + "*");
if (st.access == SymbolAccessibility.PRIVATE) {
function.modifiers = CCodeModifiers.STATIC;
}
diff --git a/codegen/valaclassregisterfunction.vala b/codegen/valaclassregisterfunction.vala
index 684b1ef..cc9b95e 100644
--- a/codegen/valaclassregisterfunction.vala
+++ b/codegen/valaclassregisterfunction.vala
@@ -183,14 +183,14 @@ public class Vala.ClassRegisterFunction : TypeRegisterFunction {
if (!plugin) {
var reg_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_add_interface_static"));
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 (get_ccode_type_id (iface)));
+ 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 (CCodeBaseModule.get_ccode_lower_case_name (class_reference, null))));
- reg_call.add_argument (new CCodeIdentifier (get_ccode_type_id (iface)));
+ 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));
}
diff --git a/codegen/valactype.vala b/codegen/valactype.vala
index c29438c..1190299 100644
--- a/codegen/valactype.vala
+++ b/codegen/valactype.vala
@@ -36,8 +36,4 @@ public class Vala.CType : DataType {
public override DataType copy () {
return new CType (ctype_name);
}
-
- public override string? get_cname () {
- return ctype_name;
- }
}
diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala
index aa6c30c..5048f50 100644
--- a/codegen/valadovabasemodule.vala
+++ b/codegen/valadovabasemodule.vala
@@ -959,13 +959,13 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
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 (get_ccode_name (type_symbol)));
+ 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 (get_ccode_name (type_symbol)));
+ 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)));
}
}
@@ -978,7 +978,7 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
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++) {
@@ -1022,7 +1022,7 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
string unref_function;
if (type is ReferenceType) {
if (is_reference_counting (type.data_type)) {
- unref_function = get_ccode_unref_function (type.data_type);
+ unref_function = get_ccode_unref_function ((ObjectTypeSymbol) type.data_type);
} else {
unref_function = get_ccode_free_function (type.data_type);
}
@@ -1593,7 +1593,7 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
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));
}
@@ -1644,7 +1644,7 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
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));
}
@@ -1975,10 +1975,6 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
}
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 (get_ccode_name (l.method)));
@@ -2152,7 +2148,7 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
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;
@@ -2290,38 +2286,62 @@ public abstract class Vala.DovaBaseModule : CodeGenerator {
return CCodeBaseModule.get_ccode_const_name (node);
}
- public string get_ccode_copy_function (CodeNode node) {
+ public string get_ccode_copy_function (TypeSymbol node) {
return CCodeBaseModule.get_ccode_copy_function (node);
}
- public string get_ccode_dup_function (CodeNode node) {
+ public string get_ccode_dup_function (TypeSymbol node) {
return CCodeBaseModule.get_ccode_dup_function (node);
}
- public string get_ccode_ref_function (CodeNode node) {
+ public string get_ccode_ref_function (TypeSymbol node) {
return CCodeBaseModule.get_ccode_ref_function (node);
}
- public string get_ccode_unref_function (CodeNode node) {
+ public string get_ccode_unref_function (ObjectTypeSymbol node) {
return CCodeBaseModule.get_ccode_unref_function (node);
}
- public bool is_reference_counting (CodeNode 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 (CodeNode node) {
+ public bool get_ccode_ref_function_void (Class node) {
return CCodeBaseModule.get_ccode_ref_function_void (node);
}
- public string get_ccode_default_value (CodeNode node) {
+ public string get_ccode_default_value (TypeSymbol node) {
return CCodeBaseModule.get_ccode_default_value (node);
}
- public string get_ccode_real_name (CodeNode 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 DataType? get_this_type () {
if (current_method != null && current_method.binding == MemberBinding.INSTANCE) {
return current_method.this_parameter.variable_type;
diff --git a/codegen/valadovadelegatemodule.vala b/codegen/valadovadelegatemodule.vala
index f8d6106..5cb0439 100644
--- a/codegen/valadovadelegatemodule.vala
+++ b/codegen/valadovadelegatemodule.vala
@@ -36,13 +36,13 @@ public class Vala.DovaDelegateModule : DovaValueModule {
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;
}
@@ -61,7 +61,7 @@ public class Vala.DovaDelegateModule : DovaValueModule {
}
CCodeFunction generate_new_function (Delegate d, CCodeFile decl_space) {
- var function = new CCodeFunction ("%s_new".printf (d.get_lower_case_cname ()), "%s*".printf (get_ccode_name (d)));
+ 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;
}
@@ -72,7 +72,7 @@ public class Vala.DovaDelegateModule : DovaValueModule {
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 (get_ccode_name (d)));
cdecl.add_declarator (new CCodeVariableDeclarator ("this", alloc_call));
@@ -94,7 +94,7 @@ public class Vala.DovaDelegateModule : DovaValueModule {
}
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;
@@ -202,16 +202,16 @@ public class Vala.DovaDelegateModule : DovaValueModule {
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 (get_ccode_name (d), d.get_lower_case_cname ());
+ 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);
diff --git a/codegen/valadovaerrormodule.vala b/codegen/valadovaerrormodule.vala
index 19ecb8e..68f7a86 100644
--- a/codegen/valadovaerrormodule.vala
+++ b/codegen/valadovaerrormodule.vala
@@ -41,7 +41,7 @@ public class Vala.DovaErrorModule : DovaDelegateModule {
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 ();
@@ -125,7 +125,7 @@ public class Vala.DovaErrorModule : DovaDelegateModule {
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);
@@ -164,7 +164,7 @@ public class Vala.DovaErrorModule : DovaDelegateModule {
// 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 {
@@ -201,7 +201,7 @@ public class Vala.DovaErrorModule : DovaDelegateModule {
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;
diff --git a/codegen/valadovamemberaccessmodule.vala b/codegen/valadovamemberaccessmodule.vala
index 8315b3e..44760f9 100644
--- a/codegen/valadovamemberaccessmodule.vala
+++ b/codegen/valadovamemberaccessmodule.vala
@@ -54,12 +54,12 @@ public abstract class Vala.DovaMemberAccessModule : DovaControlFlowModule {
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;
}
}
@@ -135,7 +135,7 @@ public abstract class Vala.DovaMemberAccessModule : DovaControlFlowModule {
if (prop.base_property != null) {
var base_class = (Class) prop.base_property.parent_symbol;
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 (current_class.get_lower_case_cname (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));
@@ -143,7 +143,7 @@ public abstract class Vala.DovaMemberAccessModule : DovaControlFlowModule {
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));
diff --git a/codegen/valadovamethodcallmodule.vala b/codegen/valadovamethodcallmodule.vala
index e2a7b91..6d25397 100644
--- a/codegen/valadovamethodcallmodule.vala
+++ b/codegen/valadovamethodcallmodule.vala
@@ -45,7 +45,7 @@ public class Vala.DovaMethodCallModule : DovaAssignmentModule {
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));
}
@@ -90,7 +90,7 @@ public class Vala.DovaMethodCallModule : DovaAssignmentModule {
}
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);
}
diff --git a/codegen/valadovaobjectmodule.vala b/codegen/valadovaobjectmodule.vala
index 4b9334d..b0ec8de 100644
--- a/codegen/valadovaobjectmodule.vala
+++ b/codegen/valadovaobjectmodule.vala
@@ -75,7 +75,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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;
}
@@ -84,7 +84,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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;
}
@@ -257,7 +257,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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);
@@ -275,7 +275,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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 (get_ccode_name (cl), 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) {
@@ -283,7 +283,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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);
}
@@ -420,11 +420,11 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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;
}
@@ -448,26 +448,26 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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"));
}
@@ -484,15 +484,15 @@ public class Vala.DovaObjectModule : DovaArrayModule {
} 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++) {
@@ -502,7 +502,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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
@@ -512,7 +512,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
@@ -531,7 +531,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
@@ -551,12 +551,12 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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 ()) {
@@ -566,7 +566,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
@@ -577,11 +577,11 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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;
}
@@ -606,10 +606,10 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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"));
@@ -623,14 +623,14 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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)));
@@ -639,7 +639,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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", get_ccode_name (cl) + "**"));
value_equals_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
@@ -658,12 +658,12 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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", get_ccode_name (cl) + "**"));
value_hash_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
@@ -678,18 +678,18 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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", 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";
}
@@ -702,17 +702,17 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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", 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";
}
@@ -726,10 +726,10 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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) {
@@ -753,7 +753,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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", get_ccode_name (cl) + "*"));
@@ -800,7 +800,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
}
@@ -834,7 +834,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
@@ -851,18 +851,18 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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 (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 (get_ccode_real_name (m)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
@@ -872,13 +872,13 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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 (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 (get_ccode_name (prop.set_accessor)));
type_init_block.add_statement (new CCodeExpressionStatement (override_call));
@@ -1017,11 +1017,11 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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;
}
@@ -1041,27 +1041,27 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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;
}
@@ -1074,7 +1074,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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));
}
@@ -1084,7 +1084,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
vtable_alloc.add_argument (new CCodeConstant ("1"));
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 ())));
}
@@ -1155,7 +1155,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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 ? get_ccode_name (acc.value_type) : "void"));
@@ -1237,7 +1237,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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 ? get_ccode_name (acc.value_type) : "void"));
@@ -1301,7 +1301,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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;
}
@@ -1310,7 +1310,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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;
}
@@ -1357,7 +1357,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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);
@@ -1371,7 +1371,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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" : get_ccode_name (m.return_type)));
decl_space.add_function_declaration (override_func);
@@ -1578,7 +1578,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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" : get_ccode_name (m.return_type));
+ 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 *"));
@@ -1632,7 +1632,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
}
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" : get_ccode_name (m.return_type)));
override_func.block = new CCodeBlock ();
@@ -1756,7 +1756,7 @@ public class Vala.DovaObjectModule : DovaArrayModule {
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 ())));
}
diff --git a/codegen/valadovavaluemodule.vala b/codegen/valadovavaluemodule.vala
index f74e7f0..f7ddd04 100644
--- a/codegen/valadovavaluemodule.vala
+++ b/codegen/valadovavaluemodule.vala
@@ -41,13 +41,13 @@ public class Vala.DovaValueModule : DovaObjectModule {
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;
@@ -71,20 +71,20 @@ public class Vala.DovaValueModule : DovaObjectModule {
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 (get_ccode_name (st), st.get_lower_case_cname ());
+ 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 ();
@@ -109,56 +109,56 @@ public class Vala.DovaValueModule : DovaObjectModule {
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 (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 ();
@@ -170,11 +170,11 @@ public class Vala.DovaValueModule : DovaObjectModule {
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", get_ccode_name (st) + "*"));
value_equals_fun.add_parameter (new CCodeParameter ("value_index", "intptr_t"));
@@ -183,7 +183,7 @@ public class Vala.DovaValueModule : DovaObjectModule {
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));
@@ -193,18 +193,18 @@ public class Vala.DovaValueModule : DovaObjectModule {
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", 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);
@@ -213,24 +213,24 @@ public class Vala.DovaValueModule : DovaObjectModule {
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 (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"));
@@ -243,11 +243,11 @@ public class Vala.DovaValueModule : DovaObjectModule {
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", get_ccode_name (st) + "*"));
@@ -255,7 +255,7 @@ public class Vala.DovaValueModule : DovaObjectModule {
value_from_any_fun.block = new CCodeBlock ();
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);
@@ -267,7 +267,7 @@ public class Vala.DovaValueModule : DovaObjectModule {
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);
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index c725b8b..4823421 100644
--- a/codegen/valagasyncmodule.vala
+++ b/codegen/valagasyncmodule.vala
@@ -375,7 +375,7 @@ public class Vala.GAsyncModule : GSignalModule {
string dataname = Symbol.lower_case_to_camel_case (get_ccode_name (m)) + "Data";
- var finishfunc = new CCodeFunction (get_ccode_finish_real_cname (m));
+ var finishfunc = new CCodeFunction (get_ccode_finish_real_name (m));
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
diff --git a/codegen/valagdbusmodule.vala b/codegen/valagdbusmodule.vala
index 4189abf..5fe330b 100644
--- a/codegen/valagdbusmodule.vala
+++ b/codegen/valagdbusmodule.vala
@@ -27,7 +27,7 @@ public class Vala.GDBusModule : GVariantModule {
public static string get_dbus_name_for_member (Symbol symbol) {
var dbus_name = symbol.get_attribute_string ("DBus", "name");
- if (dbus_name = null) {
+ if (dbus_name != null) {
return dbus_name;
}
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 56c746d..c7d7524 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -244,7 +244,7 @@ public class Vala.GIRWriter : CodeVisitor {
buffer.append_printf ("<field name=\"parent_instance\">\n");
indent++;
write_indent ();
- buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"/>\n", gi_type_name (cl.base_class), cl.base_class.get_cname ());
+ buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"/>\n", gi_type_name (cl.base_class), CCodeBaseModule.get_ccode_name (cl.base_class));
indent--;
write_indent ();
buffer.append_printf("</field>\n");
@@ -253,7 +253,7 @@ public class Vala.GIRWriter : CodeVisitor {
buffer.append_printf ("<field name=\"priv\">\n");
indent++;
write_indent ();
- buffer.append_printf ("<type name=\"%sPrivate\" c:type=\"%sPrivate*\"/>\n", cl.name, cl.get_cname ());
+ buffer.append_printf ("<type name=\"%sPrivate\" c:type=\"%sPrivate*\"/>\n", cl.name, CCodeBaseModule.get_ccode_name (cl));
indent--;
write_indent ();
buffer.append_printf("</field>\n");
@@ -277,7 +277,7 @@ public class Vala.GIRWriter : CodeVisitor {
buffer.append_printf ("<field name=\"parent_class\">\n");
indent++;
write_indent ();
- buffer.append_printf ("<type name=\"%sClass\" c:type=\"%sClass\"/>\n", gi_type_name (cl.base_class), cl.base_class.get_cname ());
+ buffer.append_printf ("<type name=\"%sClass\" c:type=\"%sClass\"/>\n", gi_type_name (cl.base_class), CCodeBaseModule.get_ccode_name (cl.base_class));
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -295,7 +295,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", m.name);
indent++;
- do_write_signature (m, "callback", true, m.name, m.get_cname (), m.get_async_begin_parameters (), new VoidType (), false);
+ do_write_signature (m, "callback", true, m.name, CCodeBaseModule.get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -303,7 +303,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", finish_name);
indent++;
- do_write_signature (m, "callback", true, finish_name, m.get_finish_cname (), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
+ do_write_signature (m, "callback", true, finish_name, CCodeBaseModule.get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -311,7 +311,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", m.name);
indent++;
- do_write_signature (m, "callback", true, m.name, m.get_cname (), m.get_parameters (), m.return_type, m.tree_can_fail);write_signature(m, "callback", true);
+ do_write_signature (m, "callback", true, m.name, CCodeBaseModule.get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail);write_signature(m, "callback", true);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -336,7 +336,7 @@ public class Vala.GIRWriter : CodeVisitor {
buffer.append_printf ("</record>\n");
write_indent ();
- buffer.append_printf ("<record name=\"%sPrivate\" c:type=\"%sPrivate\" disguised=\"1\"/>\n", cl.name, cl.get_cname ());
+ buffer.append_printf ("<record name=\"%sPrivate\" c:type=\"%sPrivate\" disguised=\"1\"/>\n", cl.name, CCodeBaseModule.get_ccode_name (cl));
} else {
write_indent ();
buffer.append_printf ("<record name=\"%s\"", get_gir_name (cl));
@@ -461,7 +461,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", m.name);
indent++;
- do_write_signature (m, "callback", true, m.name, m.get_cname (), m.get_async_begin_parameters (), new VoidType (), false);
+ do_write_signature (m, "callback", true, m.name, CCodeBaseModule.get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -469,7 +469,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", finish_name);
indent++;
- do_write_signature (m, "callback", true, finish_name, m.get_finish_cname (), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
+ do_write_signature (m, "callback", true, finish_name, CCodeBaseModule.get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -477,7 +477,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf("<field name=\"%s\">\n", m.name);
indent++;
- do_write_signature (m, "callback", true, m.name, m.get_cname (), m.get_parameters (), m.return_type, m.tree_can_fail);
+ do_write_signature (m, "callback", true, m.name, CCodeBaseModule.get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail);
indent--;
write_indent ();
buffer.append_printf ("</field>\n");
@@ -558,7 +558,7 @@ public class Vala.GIRWriter : CodeVisitor {
public override void visit_enum_value (EnumValue ev) {
write_indent ();
var en = (Enum) hierarchy[0];
- buffer.append_printf ("<member name=\"%s\" c:identifier=\"%s\"", ev.name.down (), ev.get_cname ());
+ buffer.append_printf ("<member name=\"%s\" c:identifier=\"%s\"", ev.name.down (), CCodeBaseModule.get_ccode_name (ev));
if (ev.value != null) {
string value = literal_expression_to_value_string (ev.value);
buffer.append_printf (" value=\"%s\"", value);
@@ -584,7 +584,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf ("<errordomain name=\"%s\"", edomain.name);
- buffer.append_printf (" get-quark=\"%squark\"", edomain.get_lower_case_cprefix ());
+ buffer.append_printf (" get-quark=\"%squark\"", CCodeBaseModule.get_ccode_lower_case_prefix (edomain));
buffer.append_printf (" codes=\"%s\"", edomain.name);
write_symbol_attributes (edomain);
buffer.append_printf (">\n");
@@ -613,7 +613,7 @@ public class Vala.GIRWriter : CodeVisitor {
public override void visit_error_code (ErrorCode ecode) {
write_indent ();
- buffer.append_printf ("<member name=\"%s\" c:identifier=\"%s\"", ecode.name.down (), ecode.get_cname ());
+ buffer.append_printf ("<member name=\"%s\" c:identifier=\"%s\"", ecode.name.down (), CCodeBaseModule.get_ccode_name (ecode));
if (ecode.value != null) {
string value = literal_expression_to_value_string (ecode.value);
buffer.append_printf (" value=\"%s\"", value);
@@ -638,7 +638,7 @@ public class Vala.GIRWriter : CodeVisitor {
string value = literal_expression_to_value_string (initializer);
write_indent ();
- buffer.append_printf ("<constant name=\"%s\" c:identifier=\"%s\"", c.name, c.get_cname ());
+ buffer.append_printf ("<constant name=\"%s\" c:identifier=\"%s\"", c.name, CCodeBaseModule.get_ccode_name (c));
buffer.append_printf (" value=\"%s\"", value);
write_symbol_attributes (c);
buffer.append_printf (">\n");
@@ -661,7 +661,7 @@ public class Vala.GIRWriter : CodeVisitor {
}
write_indent ();
- buffer.append_printf ("<field name=\"%s\"", f.get_cname ());
+ buffer.append_printf ("<field name=\"%s\"", CCodeBaseModule.get_ccode_name (f));
if (f.variable_type.nullable) {
buffer.append_printf (" allow-none=\"1\"");
}
@@ -706,9 +706,9 @@ public class Vala.GIRWriter : CodeVisitor {
}
foreach (Parameter param in params) {
- write_param_or_return (param.variable_type, true, ref index, !param.no_array_length, param.name, param.direction);
+ write_param_or_return (param.variable_type, true, ref index, !CCodeBaseModule.get_ccode_no_array_length (param), param.name, param.direction);
- write_implicit_params (param.variable_type, ref index, !param.no_array_length, param.name, param.direction);
+ write_implicit_params (param.variable_type, ref index, !CCodeBaseModule.get_ccode_no_array_length (param), param.name, param.direction);
}
if (ret_is_struct) {
@@ -754,7 +754,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_indent ();
buffer.append_printf ("<callback name=\"%s\"", cb.name);
- buffer.append_printf (" c:type=\"%s\"", cb.get_cname ());
+ buffer.append_printf (" c:type=\"%s\"", CCodeBaseModule.get_ccode_name (cb));
if (cb.tree_can_fail) {
buffer.append_printf (" throws=\"1\"");
}
@@ -764,7 +764,7 @@ public class Vala.GIRWriter : CodeVisitor {
write_annotations (cb);
- write_params_and_return (cb.get_parameters (), cb.return_type, !cb.no_array_length, false, null, cb.has_target);
+ write_params_and_return (cb.get_parameters (), cb.return_type, !CCodeBaseModule.get_ccode_no_array_length (cb), false, null, cb.has_target);
indent--;
write_indent ();
@@ -806,7 +806,7 @@ public class Vala.GIRWriter : CodeVisitor {
bool check_type (DataType type) {
// gobject-introspection does not currently support va_list parameters
- if (type.get_cname () == "va_list") {
+ if (CCodeBaseModule.get_ccode_name (type) == "va_list") {
return false;
}
@@ -830,8 +830,8 @@ public class Vala.GIRWriter : CodeVisitor {
string name;
if (m.parent_symbol != parent) {
instance = false;
- name = m.get_cname ();
- var parent_prefix = parent.get_lower_case_cprefix ();
+ name = CCodeBaseModule.get_ccode_name (m);
+ var parent_prefix = CCodeBaseModule.get_ccode_lower_case_prefix (parent);
if (name.has_prefix (parent_prefix)) {
name = name.substring (parent_prefix.length);
}
@@ -845,10 +845,10 @@ public class Vala.GIRWriter : CodeVisitor {
finish_name = finish_name.substring (0, finish_name.length - "_async".length);
}
finish_name += "_finish";
- do_write_signature (m, tag_name, instance, name, m.get_cname (), m.get_async_begin_parameters (), new VoidType (), false);
- do_write_signature (m, tag_name, instance, finish_name, m.get_finish_cname (), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
+ do_write_signature (m, tag_name, instance, name, CCodeBaseModule.get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false);
+ do_write_signature (m, tag_name, instance, finish_name, CCodeBaseModule.get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail);
} else {
- do_write_signature (m, tag_name, instance, name, m.get_cname (), m.get_parameters (), m.return_type, m.tree_can_fail);
+ do_write_signature (m, tag_name, instance, name, CCodeBaseModule.get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail);
}
}
@@ -877,7 +877,7 @@ public class Vala.GIRWriter : CodeVisitor {
instance_type = CCodeBaseModule.get_data_type_for_symbol ((TypeSymbol) m.parent_symbol);
}
- write_params_and_return (params, return_type, !m.no_array_length, false, instance_type);
+ write_params_and_return (params, return_type, !CCodeBaseModule.get_ccode_no_array_length (m), false, instance_type);
indent--;
write_indent ();
@@ -902,9 +902,9 @@ public class Vala.GIRWriter : CodeVisitor {
if (m.parent_symbol is Class && m == ((Class)m.parent_symbol).default_construction_method ||
m.parent_symbol is Struct && m == ((Struct)m.parent_symbol).default_construction_method) {
string m_name = is_struct ? "init" : "new";
- buffer.append_printf ("<%s name=\"%s\" c:identifier=\"%s\"", tag_name, m_name, m.get_cname ());
+ buffer.append_printf ("<%s name=\"%s\" c:identifier=\"%s\"", tag_name, m_name, CCodeBaseModule.get_ccode_name (m));
} else {
- buffer.append_printf ("<%s name=\"%s\" c:identifier=\"%s\"", tag_name, m.name, m.get_cname ());
+ buffer.append_printf ("<%s name=\"%s\" c:identifier=\"%s\"", tag_name, m.name, CCodeBaseModule.get_ccode_name (m));
}
if (m.tree_can_fail) {
@@ -963,7 +963,7 @@ public class Vala.GIRWriter : CodeVisitor {
}
write_indent ();
- buffer.append_printf ("<glib:signal name=\"%s\"", sig.get_cname ());
+ buffer.append_printf ("<glib:signal name=\"%s\"", CCodeBaseModule.get_ccode_name (sig));
write_symbol_attributes (sig);
buffer.append_printf (">\n");
indent++;
@@ -1050,13 +1050,13 @@ public class Vala.GIRWriter : CodeVisitor {
}
private void write_ctype_attributes (TypeSymbol symbol, string suffix = "") {
- buffer.append_printf (" c:type=\"%s%s\"", symbol.get_cname (), suffix);
+ buffer.append_printf (" c:type=\"%s%s\"", CCodeBaseModule.get_ccode_name (symbol), suffix);
}
private void write_gtype_attributes (TypeSymbol symbol) {
write_ctype_attributes(symbol);
- buffer.append_printf (" glib:type-name=\"%s\"", symbol.get_cname ());
- buffer.append_printf (" glib:get-type=\"%sget_type\"", symbol.get_lower_case_cprefix ());
+ buffer.append_printf (" glib:type-name=\"%s\"", CCodeBaseModule.get_ccode_name (symbol));
+ buffer.append_printf (" glib:get-type=\"%sget_type\"", CCodeBaseModule.get_ccode_lower_case_prefix (symbol));
}
private void write_type (DataType type, int index = -1) {
@@ -1083,10 +1083,10 @@ public class Vala.GIRWriter : CodeVisitor {
buffer.append_printf ("<type name=\"none\"/>\n");
} else if (type is PointerType) {
write_indent ();
- buffer.append_printf ("<type name=\"gpointer\" c:type=\"%s\"/>\n", type.get_cname ());
+ buffer.append_printf ("<type name=\"gpointer\" c:type=\"%s\"/>\n", CCodeBaseModule.get_ccode_name (type));
} else if (type.data_type != null) {
write_indent ();
- buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"", gi_type_name (type.data_type), type.get_cname ());
+ buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"", gi_type_name (type.data_type), CCodeBaseModule.get_ccode_name (type));
List<DataType> type_arguments = type.get_type_arguments ();
if (type_arguments.size == 0) {
@@ -1106,7 +1106,7 @@ public class Vala.GIRWriter : CodeVisitor {
} else if (type is DelegateType) {
var deleg_type = (DelegateType) type;
write_indent ();
- buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"/>\n", gi_type_name (deleg_type.delegate_symbol), type.get_cname ());
+ buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"/>\n", gi_type_name (deleg_type.delegate_symbol), CCodeBaseModule.get_ccode_name (type));
} else if (type is GenericType) {
// generic type parameters not supported in GIR
write_indent ();
diff --git a/codegen/valagsignalmodule.vala b/codegen/valagsignalmodule.vala
index fba5c87..99b17bc 100644
--- a/codegen/valagsignalmodule.vala
+++ b/codegen/valagsignalmodule.vala
@@ -343,7 +343,7 @@ public class Vala.GSignalModule : GObjectModule {
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 (get_ccode_vfunc_name (sig.default_handler)));
csignew.add_argument (struct_offset);
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index dc041ca..039f768 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -1221,7 +1221,7 @@ public class Vala.GTypeModule : GErrorModule {
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, get_ccode_finish_vfunc_name (m.base_method)), new CCodeIdentifier (get_ccode_finish_real_cname (m)));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_finish_vfunc_name (m.base_method)), new CCodeIdentifier (get_ccode_finish_real_name (m)));
}
}
}
@@ -1277,7 +1277,7 @@ public class Vala.GTypeModule : GErrorModule {
private void add_interface_init_function (Class cl, Interface iface) {
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 (iface.get_type_cname ())));
+ iface_init.add_parameter (new CCodeParameter ("iface", "%s *".printf (get_ccode_type_name (iface))));
iface_init.modifiers = CCodeModifiers.STATIC;
push_function (iface_init);
@@ -1286,7 +1286,7 @@ public class Vala.GTypeModule : GErrorModule {
/* save pointer to parent vtable */
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 (iface.get_type_cname () + "*");
+ 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);
@@ -1320,7 +1320,7 @@ public class Vala.GTypeModule : GErrorModule {
if (m.is_abstract || m.is_virtual) {
cfunc = new CCodeIdentifier (get_ccode_finish_name (m));
} else {
- cfunc = new CCodeIdentifier (get_ccode_finish_real_cname (m));
+ cfunc = new CCodeIdentifier (get_ccode_finish_real_name (m));
}
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_finish_vfunc_name (m.base_interface_method)), cfunc);
}
@@ -1848,7 +1848,7 @@ public class Vala.GTypeModule : GErrorModule {
}
}
- 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 (get_ccode_lower_case_name (iface, null));
@@ -1860,12 +1860,12 @@ public class Vala.GTypeModule : GErrorModule {
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 (get_ccode_type_id (iface), iface.get_type_cname ());
+ 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 (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 (iface.get_type_cname ())));
+ 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");
@@ -2041,7 +2041,7 @@ public class Vala.GTypeModule : GErrorModule {
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, get_ccode_finish_vfunc_name (m)), new CCodeIdentifier (get_ccode_finish_real_cname (m)));
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, get_ccode_finish_vfunc_name (m)), new CCodeIdentifier (get_ccode_finish_real_name (m)));
}
}
}
diff --git a/codegen/valainterfaceregisterfunction.vala b/codegen/valainterfaceregisterfunction.vala
index f2233be..0b900ea 100644
--- a/codegen/valainterfaceregisterfunction.vala
+++ b/codegen/valainterfaceregisterfunction.vala
@@ -43,7 +43,7 @@ public class Vala.InterfaceRegisterFunction : TypeRegisterFunction {
}
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 () {
@@ -85,7 +85,7 @@ public class Vala.InterfaceRegisterFunction : TypeRegisterFunction {
var func = new CCodeFunctionCall (new CCodeIdentifier ("g_type_interface_add_prerequisite"));
func.add_argument (new CCodeIdentifier ("%s_type_id".printf (CCodeBaseModule.get_ccode_lower_case_name (interface_reference))));
- func.add_argument (new CCodeIdentifier (get_ccode_type_id (prereq)));
+ func.add_argument (new CCodeIdentifier (CCodeBaseModule.get_ccode_type_id (prereq)));
block.add_statement (new CCodeExpressionStatement (func));
}
diff --git a/vala/valaattribute.vala b/vala/valaattribute.vala
index 68d7539..c4e72d6 100644
--- a/vala/valaattribute.vala
+++ b/vala/valaattribute.vala
@@ -125,6 +125,12 @@ public class Vala.Attribute : CodeNode {
* @return boolean value
*/
public bool get_bool (string name) {
- return bool.parse (args.get (name));
+ string value = args.get (name);
+
+ if (value == null) {
+ return false;
+ }
+
+ return bool.parse (value);
}
}
diff --git a/vala/valadelegate.vala b/vala/valadelegate.vala
index c89a78e..b5022db 100644
--- a/vala/valadelegate.vala
+++ b/vala/valadelegate.vala
@@ -45,7 +45,12 @@ public class Vala.Delegate : TypeSymbol {
public bool has_target {
get {
if (_has_target == null) {
- _has_target = get_attribute_bool ("CCode", "has_target");
+ var a = get_attribute ("CCode");
+ if (a != null && a.has_argument ("has_target")) {
+ _has_target = a.get_bool ("has_target");
+ } else {
+ _has_target = true;
+ }
}
return _has_target;
}
diff --git a/vala/valaerrordomain.vala b/vala/valaerrordomain.vala
index dac4508..fd503a3 100644
--- a/vala/valaerrordomain.vala
+++ b/vala/valaerrordomain.vala
@@ -28,9 +28,6 @@ using GLib;
public class Vala.ErrorDomain : TypeSymbol {
private List<ErrorCode> codes = new ArrayList<ErrorCode> ();
private List<Method> methods = new ArrayList<Method> ();
- private string cprefix;
- private string lower_case_cprefix;
- private string lower_case_csuffix;
/**
* Creates a new error domain.
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala
index 0de741c..4f9c016 100644
--- a/vala/valagenieparser.vala
+++ b/vala/valagenieparser.vala
@@ -3683,8 +3683,8 @@ public class Vala.Genie.Parser : CodeVisitor {
d.access = get_access (sym.name);
}
- if (!(ModifierFlags.STATIC in flags)) {
- d.has_target = true;
+ if (ModifierFlags.STATIC in flags) {
+ d.has_target = false;
}
if (ModifierFlags.EXTERN in flags || scanner.source_file.file_type == SourceFileType.PACKAGE) {
d.external = true;
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 7a444a6..30167b0 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -565,14 +565,9 @@ public class Vala.GirParser : CodeVisitor {
if (name == null) {
return "";
}
- if (prefix == null) {
- prefix = symbol.get_attribute_string ("CCode", "lower_case_cprefix");
- }
+ var prefix = symbol.get_attribute_string ("CCode", "lower_case_cprefix");
if (prefix == null && (symbol is ObjectTypeSymbol || symbol is Struct)) {
- prefix = metadata.get_string (ArgumentType.CPREFIX);
- if (prefix == null) {
- prefix = symbol.get_attribute_string ("CCode", "cprefix");
- }
+ prefix = symbol.get_attribute_string ("CCode", "cprefix");
}
if (prefix == null) {
prefix = "%s%s_".printf (parent.get_lower_case_cprefix (), Symbol.camel_case_to_lower_case (name));
@@ -2182,7 +2177,7 @@ public class Vala.GirParser : CodeVisitor {
cl.set_attribute_string ("CCode", "cname", cname);
}
if (metadata.has_argument (ArgumentType.CPREFIX)) {
- cl.set_lower_case_cprefix (metadata.get_string (ArgumentType.CPREFIX));
+ cl.set_attribute_string ("CCode", "cprefix", metadata.get_string (ArgumentType.CPREFIX));
}
if (parent != null) {
diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala
index bebcbaf..c4105bd 100644
--- a/vala/valalambdaexpression.vala
+++ b/vala/valalambdaexpression.vala
@@ -135,7 +135,7 @@ public class Vala.LambdaExpression : Expression {
var cb = (Delegate) ((DelegateType) target_type).delegate_symbol;
var return_type = cb.return_type.get_actual_type (target_type, null, this);
method = new Method (get_lambda_name (context), return_type, source_reference);
- method.attributes = attributes;
+ method.attributes = cb.attributes.copy ();
method.array_null_terminated = cb.array_null_terminated;
method.array_length_type = cb.array_length_type;
// track usage for flow analyzer
diff --git a/vala/valamethod.vala b/vala/valamethod.vala
index 70a38b5..e53dd81 100644
--- a/vala/valamethod.vala
+++ b/vala/valamethod.vala
@@ -244,9 +244,7 @@ public class Vala.Method : Subroutine {
param.cdestroy_notify_parameter_position = param.cparameter_position + 0.1;
parameters.add (param);
- if (!param.ellipsis) {
- scope.add (param.name, param);
- }
+ scope.add (param.name, param);
}
public List<Parameter> get_parameters () {
@@ -976,8 +974,8 @@ public class Vala.Method : Subroutine {
var callback_param = new Parameter ("_callback_", callback_type);
callback_param.initializer = new NullLiteral (source_reference);
callback_param.initializer.target_type = callback_type.copy ();
- callback_param.cparameter_position = -1;
- callback_param.cdelegate_target_parameter_position = -0.9;
+ callback_param.set_attribute_double ("CCode", "pos", -1);
+ callback_param.set_attribute_double ("CCode", "delegate_target_pos", -0.9);
params.add (callback_param);
@@ -993,7 +991,7 @@ public class Vala.Method : Subroutine {
var result_type = new ObjectType ((ObjectTypeSymbol) glib_ns.scope.lookup ("AsyncResult"));
var result_param = new Parameter ("_res_", result_type);
- result_param.cparameter_position = 0.1;
+ result_param.set_attribute_double ("CCode", "pos", 0.1);
params.add (result_param);
foreach (var param in parameters) {
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 60c7a60..6aedb92 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -3374,8 +3374,7 @@ public class Vala.Parser : CodeVisitor {
// TODO enable warning in future releases
Report.warning (get_last_src (), "deprecated syntax, use [CCode (has_target = false)]");
}
- } else {
- d.has_target = true;
+ d.has_target = false;
}
if (ModifierFlags.EXTERN in flags || scanner.source_file.file_type == SourceFileType.PACKAGE) {
d.external = true;
diff --git a/vala/valastruct.vala b/vala/valastruct.vala
index 5c77270..6b48328 100644
--- a/vala/valastruct.vala
+++ b/vala/valastruct.vala
@@ -350,10 +350,6 @@ public class Vala.Struct : TypeSymbol {
}
}
- private void process_boolean_type_attribute (Attribute a) {
- boolean_type = true;
- }
-
private void process_integer_type_attribute (Attribute a) {
if (a.has_argument ("width")) {
width = a.get_integer ("width");
@@ -416,7 +412,7 @@ public class Vala.Struct : TypeSymbol {
}
if (simple_type == null) {
- if (get_attribute ("SimpleType") != null || boolean_type || integer_type || floating_type) {
+ if (get_attribute ("SimpleType") != null || get_attribute ("BooleanType") != null || get_attribute ("IntegerType") != null || get_attribute ("FloatingType") != null) {
simple_type = true;
} else {
var st = base_struct;
@@ -456,7 +452,7 @@ public class Vala.Struct : TypeSymbol {
}
public bool is_disposable () {
- if (get_attribute_string ("CCode", "destroy_function") != "") {
+ if (get_attribute_string ("CCode", "destroy_function") != null) {
return true;
}
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index d146a3d..6a12bb4 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -196,9 +196,9 @@ public class Vala.GIdlParser : CodeVisitor {
}
private string get_finish_cname (Method m) {
- var finish_cname = sym.get_attribute_string ("CCode", "finish_name");
+ var finish_cname = m.get_attribute_string ("CCode", "finish_name");
if (finish_cname != null) {
- returnf finish_cname;
+ return finish_cname;
}
var result = get_cname (m);
if (result.has_suffix ("_async")) {
@@ -260,7 +260,6 @@ public class Vala.GIdlParser : CodeVisitor {
}
return "";
}
-}
private string[] get_attributes_for_node (IdlNode node) {
string name;
@@ -921,7 +920,7 @@ public class Vala.GIdlParser : CodeVisitor {
if (ref_function != null) {
cl.set_attribute_string ("CCode", "ref_function", ref_function);
- cl.set_attribute_string ("CCode", "ref_function_void", ref_function_void);
+ cl.set_attribute_bool ("CCode", "ref_function_void", ref_function_void);
}
if (copy_function != null) {
cl.set_attribute_string ("CCode", "copy_function", copy_function);
@@ -1059,7 +1058,7 @@ public class Vala.GIdlParser : CodeVisitor {
if (ref_function != null) {
cl.set_attribute_string ("CCode", "ref_function", ref_function);
- cl.set_attribute_string ("CCode", "ref_function_void", ref_function_void);
+ cl.set_attribute_bool ("CCode", "ref_function_void", ref_function_void);
}
if (copy_function != null) {
cl.set_attribute_string ("CCode", "copy_function", copy_function);
@@ -1115,7 +1114,7 @@ public class Vala.GIdlParser : CodeVisitor {
}
} else if (nv[0] == "has_copy_function") {
if (eval (nv[1]) == "0") {
- st.has_copy_function = false;
+ st.set_attribute_bool ("CCode", "has_copy_function", false);
}
} else if (nv[0] == "has_destroy_function") {
if (eval (nv[1]) == "0") {
@@ -1246,7 +1245,7 @@ public class Vala.GIdlParser : CodeVisitor {
if (ref_function != null) {
cl.set_attribute_string ("CCode", "ref_function", ref_function);
- cl.set_attribute_string ("CCode", "ref_function_void", ref_function_void);
+ cl.set_attribute_bool ("CCode", "ref_function_void", ref_function_void);
}
if (copy_function != null) {
cl.set_attribute_string ("CCode", "copy_function", copy_function);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]