summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2019-01-04 19:18:11 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2019-01-04 19:18:11 +0100
commit48de3bb60ddf01418fa390692e769d3038db9ea4 (patch)
tree0dd4b77bdfcc9e697bba25616ff4ff5af780a4f8
parentd450ac063c63b53eba4a61a58eae2d97875d94d7 (diff)
downloadvala-48de3bb60ddf01418fa390692e769d3038db9ea4.tar.gz
codegen: Cast instance parameter for property access in object-initializer
This will silence those incompatible-pointer-types warnings
-rw-r--r--codegen/valaccodebasemodule.vala10
1 files changed, 6 insertions, 4 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index d63c4ae52..ae1ad0c2c 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -5070,10 +5070,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
generate_class_struct_declaration (cl, cfile);
}
} else if (init.symbol_reference is Property) {
- var inst_ma = new MemberAccess.simple ("new");
- inst_ma.value_type = expr.type_reference;
- set_cvalue (inst_ma, instance);
- store_property ((Property) init.symbol_reference, inst_ma, init.initializer.target_value);
+ var p = (Property) init.symbol_reference;
+ var instance_target_type = get_data_type_for_symbol ((TypeSymbol) p.parent_symbol);
+ var typed_inst = transform_value (new GLibValue (expr.type_reference, instance), instance_target_type, init);
+ var inst_ma = new MemberAccess.simple ("fake");
+ inst_ma.target_value = typed_inst;
+ store_property (p, inst_ma, init.initializer.target_value);
// FIXME Do not ref/copy in the first place
if (requires_destroy (init.initializer.target_value.value_type)) {
ccode.add_expression (destroy_value (init.initializer.target_value));