vcall.add_argument (new CCodeIdentifier ("value"));
block.add_statement (new CCodeExpressionStatement (vcall));
} else {
+ if (acc.value_type is ArrayType) {
+ var array_type = (ArrayType) acc.value_type;
+
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ var len_expr = new CCodeIdentifier (head.get_array_length_cname ("result", dim));
+ vcall.add_argument (len_expr);
+ }
+ }
+
block.add_statement (new CCodeReturnStatement (vcall));
}
} else {
var vcall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (vcast, "set_%s".printf (prop.name)));
vcall.add_argument (new CCodeIdentifier ("self"));
vcall.add_argument (new CCodeIdentifier ("value"));
+
+ if (acc.value_type is ArrayType) {
+ var array_type = (ArrayType) acc.value_type;
+
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ var len_expr = new CCodeIdentifier (head.get_array_length_cname ("value", dim));
+ vcall.add_argument (len_expr);
+ }
+ }
+
block.add_statement (new CCodeExpressionStatement (vcall));
}
continue;
}
+ if (prop.property_type is ArrayType) {
+ continue;
+ }
+
if (prop.overrides || prop.base_interface_property != null) {
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_override_property"));
cinst.add_argument (ccall);
continue;
}
+ if (prop.property_type is ArrayType) {
+ continue;
+ }
+
string prefix = cl.get_lower_case_cname (null);
CCodeExpression cself = new CCodeIdentifier ("self");
if (prop.base_property != null) {
continue;
}
+ if (prop.property_type is ArrayType) {
+ continue;
+ }
+
string prefix = cl.get_lower_case_cname (null);
CCodeExpression cself = new CCodeIdentifier ("self");
if (prop.base_property != null) {
} else {
creturn_type = prop.property_type.get_cname ();
}
+
+ var array_type = prop.property_type as ArrayType;
+ if (array_type != null) {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ vdeclarator.add_parameter (new CCodeFormalParameter (head.get_array_length_cname ("result", dim), "int*"));
+ }
+ }
+
var vdecl = new CCodeDeclaration (creturn_type);
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
var vdeclarator = new CCodeFunctionDeclarator ("set_%s".printf (prop.name));
vdeclarator.add_parameter (cselfparam);
vdeclarator.add_parameter (cvalueparam);
+
+ var array_type = prop.property_type as ArrayType;
+ if (array_type != null) {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ vdeclarator.add_parameter (new CCodeFormalParameter (head.get_array_length_cname ("value", dim), "int"));
+ }
+ }
+
var vdecl = new CCodeDeclaration ("void");
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
} else {
creturn_type = prop.get_accessor.value_type.get_cname ();
}
+
+ var array_type = prop.property_type as ArrayType;
+ if (array_type != null) {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ vdeclarator.add_parameter (new CCodeFormalParameter (head.get_array_length_cname ("result", dim), "int*"));
+ }
+ }
+
var vdecl = new CCodeDeclaration (creturn_type);
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
var cvalueparam = new CCodeFormalParameter ("value", prop.set_accessor.value_type.get_cname ());
vdeclarator.add_parameter (cvalueparam);
}
+
+ var array_type = prop.property_type as ArrayType;
+ if (array_type != null) {
+ for (int dim = 1; dim <= array_type.rank; dim++) {
+ vdeclarator.add_parameter (new CCodeFormalParameter (head.get_array_length_cname ("value", dim), "int"));
+ }
+ }
+
var vdecl = new CCodeDeclaration ("void");
vdecl.add_declarator (vdeclarator);
type_struct.add_declaration (vdecl);
var props = iface.get_properties ();
foreach (Property prop in props) {
if (prop.is_abstract) {
+
+ if (prop.property_type is ArrayType) {
+ continue;
+ }
+
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_interface_install_property"));
cinst.add_argument (new CCodeIdentifier ("iface"));
cinst.add_argument (head.get_param_spec (prop));