[vala] Fix crash when passing method as argument to dynamic method



commit 2312811ae6fac928aa4ddbe40e1e20001459bc35
Author: Luca Bruno <lethalman88 gmail com>
Date:   Sun May 30 12:30:07 2010 +0200

    Fix crash when passing method as argument to dynamic method
    
    Target type is not set for arguments of dynamic methods.
    
    Fixes bug 620037.

 codegen/valaccodedelegatemodule.vala |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index 5d29717..e503e6c 100644
--- a/codegen/valaccodedelegatemodule.vala
+++ b/codegen/valaccodedelegatemodule.vala
@@ -309,8 +309,8 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
 					}
 				} else {
 					var delegate_target = (CCodeExpression) get_ccodenode (ma.inner);
-					var delegate_type = (DelegateType) delegate_expr.target_type;
-					if ((expr_owned || delegate_type.is_called_once) && ma.inner.value_type.data_type != null && ma.inner.value_type.data_type.is_reference_counting ()) {
+					var delegate_type = delegate_expr.target_type as DelegateType;
+					if ((expr_owned || (delegate_type != null && delegate_type.is_called_once)) && ma.inner.value_type.data_type != null && ma.inner.value_type.data_type.is_reference_counting ()) {
 						var ref_call = new CCodeFunctionCall (get_dup_func_expression (ma.inner.value_type, delegate_expr.source_reference));
 						ref_call.add_argument (delegate_target);
 						delegate_target = ref_call;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]