Fix ref and out signal parameters
authorJürg Billeter <j@bitron.ch>
Fri, 20 Jun 2008 18:38:02 +0000 (18:38 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 20 Jun 2008 18:38:02 +0000 (18:38 +0000)
2008-06-20  Jürg Billeter  <j@bitron.ch>

* gobject/valaccodegeneratorsignal.vala:

Fix ref and out signal parameters

svn path=/trunk/; revision=1617

ChangeLog
gobject/valaccodegeneratorsignal.vala

index 0ea0c88..d127ed5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-20  Jürg Billeter  <j@bitron.ch>
+
+       * gobject/valaccodegeneratorsignal.vala:
+
+       Fix ref and out signal parameters
+
 2008-06-18  Jürg Billeter  <j@bitron.ch>
 
        * vapi/glib-2.0.vapi:
index 941a742..869649b 100644 (file)
@@ -248,13 +248,15 @@ public class Vala.CCodeGenerator {
                foreach (FormalParameter p in params) {
                        string get_value_function;
                        bool is_array = p.parameter_type.is_array ();
-                       if (is_array) {
+                       if (p.direction != ParameterDirection.IN) {
+                               get_value_function = "g_value_get_pointer";
+                       } else if (is_array) {
                                if (((ArrayType) p.parameter_type).element_type.data_type == string_type.data_type) {
                                        get_value_function = "g_value_get_boxed";
                                } else {
                                        get_value_function = "g_value_get_pointer";
                                }
-                       } else if (p.parameter_type is PointerType || p.parameter_type.type_parameter != null || p.direction != ParameterDirection.IN) {
+                       } else if (p.parameter_type is PointerType || p.parameter_type.type_parameter != null) {
                                get_value_function = "g_value_get_pointer";
                        } else if (p.parameter_type is ErrorType) {
                                get_value_function = "g_value_get_pointer";