2008-01-17 Juerg Billeter <j@bitron.ch>
* gobject/valaccodegenerator.vala: pass non-simple structs also in
object creation expressions always by reference, fixes bug 510029
svn path=/trunk/; revision=843
2008-01-17 Jürg Billeter <j@bitron.ch>
+ * gobject/valaccodegenerator.vala: pass non-simple structs also in
+ object creation expressions always by reference, fixes bug 510029
+
+2008-01-17 Jürg Billeter <j@bitron.ch>
+
* vapigen/valagidlparser.vala: remove outdated type name heuristics,
fixes bug 509597
ellipsis = param.ellipsis;
if (!param.ellipsis) {
cexpr = get_implicit_cast_expression (cexpr, arg.static_type, param.type_reference);
+
+ // pass non-simple struct instances always by reference
+ if (param.type_reference.data_type is Struct && !((Struct) param.type_reference.data_type).is_simple_type ()) {
+ // we already use a reference for arguments of ref and out parameters
+ if (!param.type_reference.is_ref && !param.type_reference.is_out) {
+ cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, cexpr);
+ }
+ }
}
}