[vala] codegen: Fix boxing of value type different than the target type



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]