]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GAsync: Fix finish function for methods with value type out parameters
authorJürg Billeter <j@bitron.ch>
Thu, 29 Apr 2010 08:41:46 +0000 (10:41 +0200)
committerJürg Billeter <j@bitron.ch>
Thu, 29 Apr 2010 08:41:46 +0000 (10:41 +0200)
Fixes bug 617087.

codegen/valagasyncmodule.vala

index 435dee58fb3552bc36e14e6db71a2fb60699603e..ab3fb0d750a8acfecc7fa13e9d5aa5e8481f7bd5 100644 (file)
@@ -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"))));
+                               }
                        }
                }