]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Fix type check of ref parameters
authorLuca Bruno <lucabru@src.gnome.org>
Fri, 11 Nov 2011 20:29:54 +0000 (21:29 +0100)
committerLuca Bruno <lucabru@src.gnome.org>
Fri, 11 Nov 2011 20:29:54 +0000 (21:29 +0100)
Fixes bug 663818.

codegen/valaccodemethodmodule.vala

index a5be3346544fc7e5fe05a20e7934d7af24b33782..982f5cef9f0b65a02f856eb454e8125f68978162 100644 (file)
@@ -443,7 +443,11 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
                                        if (param.direction != ParameterDirection.OUT) {
                                                var t = param.variable_type.data_type;
                                                if (t != null && (t.is_reference_type () || param.variable_type.is_real_struct_type ())) {
-                                                       create_method_type_check_statement (m, creturn_type, t, !param.variable_type.nullable, get_variable_cname (param.name));
+                                                       var cname = get_variable_cname (param.name);
+                                                       if (param.direction == ParameterDirection.REF && !param.variable_type.is_real_struct_type ()) {
+                                                               cname = "*"+cname;
+                                                       }
+                                                       create_method_type_check_statement (m, creturn_type, t, !param.variable_type.nullable, cname);
                                                }
                                        } else if (!m.coroutine) {
                                                // declare local variable for out parameter to allow assignment even when caller passes NULL