[vala] codegen: Fix boxing of value type different than the target type
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] codegen: Fix boxing of value type different than the target type
- Date: Tue, 5 Jul 2011 18:47:50 +0000 (UTC)
commit 69d4f7e83e8d3090bce503f0da4287b36a52b6fa
Author: Luca Bruno <lucabru src gnome org>
Date: Tue Jul 5 20:22:19 2011 +0200
codegen: Fix boxing of value type different than the target type
codegen/valaccodebasemodule.vala | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 1fd8eeb..c2591fa 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -5222,10 +5222,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
} else if (result.cvalue is CCodeIdentifier || result.cvalue is CCodeMemberAccess) {
result.cvalue = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, result.cvalue);
} else {
- var decl = get_temp_variable (type, type.value_owned, type, false);
+ var cast_type = target_type.copy ();
+ cast_type.nullable = false;
+ var decl = get_temp_variable (cast_type, cast_type.value_owned, node, false);
emit_temp_var (decl);
- ccode.add_assignment (get_variable_cexpression (decl.name), result.cvalue);
+ ccode.add_assignment (get_variable_cexpression (decl.name), get_implicit_cast_expression (result.cvalue, type, cast_type, node));
result.cvalue = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (decl.name));
}
} else if (unboxing) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]