From: Jürg Billeter Date: Thu, 29 Apr 2010 08:41:46 +0000 (+0200) Subject: GAsync: Fix finish function for methods with value type out parameters X-Git-Tag: 0.9.1~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b198ff5a8bf797a0971dfe3e4539d05a6a5f446;p=thirdparty%2Fvala.git GAsync: Fix finish function for methods with value type out parameters Fixes bug 617087. --- diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala index 435dee58f..ab3fb0d75 100644 --- a/codegen/valagasyncmodule.vala +++ b/codegen/valagasyncmodule.vala @@ -431,7 +431,9 @@ public class Vala.GAsyncModule : GSignalModule { foreach (FormalParameter param in m.get_parameters ()) { if (param.direction != ParameterDirection.IN) { finishblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier (param.name)), new CCodeMemberAccess.pointer (data_var, get_variable_cname (param.name))))); - finishblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (data_var, get_variable_cname (param.name)), new CCodeConstant ("NULL")))); + if (!(param.parameter_type is ValueType) || param.parameter_type.nullable) { + finishblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (data_var, get_variable_cname (param.name)), new CCodeConstant ("NULL")))); + } } }