summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2023-02-05 19:33:15 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2023-02-05 20:05:32 +0100
commit0771248fd47770e0d25d139143de41eb16a6ee07 (patch)
tree711ab83e07a12afed1d53646d2eb669ae74878dd
parentfe1633c15bc5a572ba45b59c7612a3eb352503f2 (diff)
downloadvala-0771248fd47770e0d25d139143de41eb16a6ee07.tar.gz
codegen: Cast vfunc of property accessors by using cast_method_pointer()
Found by -Wincompatible-function-pointer-types See https://gitlab.gnome.org/GNOME/vala/issues/1408
-rw-r--r--codegen/valagtypemodule.vala44
-rw-r--r--tests/methods/array-length-type.c-expected8
-rw-r--r--tests/objects/bug667668.c-expected4
-rw-r--r--tests/objects/bug702736.c-expected4
-rw-r--r--tests/objects/bug741465.c-expected12
-rw-r--r--tests/objects/bug764481.c-expected16
-rw-r--r--tests/objects/bug779219.c-expected4
-rw-r--r--tests/objects/member-initializer-base-properties.c-expected8
-rw-r--r--tests/objects/properties.c-expected8
-rw-r--r--tests/objects/property-array.c-expected20
-rw-r--r--tests/objects/property-delegate-owned.c-expected24
-rw-r--r--tests/objects/property-delegate.c-expected12
-rw-r--r--tests/objects/property-real-struct-assignment.c-expected4
13 files changed, 79 insertions, 89 deletions
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index 0d9fae482..34c0773d4 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -1365,14 +1365,16 @@ public class Vala.GTypeModule : GErrorModule {
if (prop.get_accessor != null) {
generate_property_accessor_declaration (prop.base_property.get_accessor, cfile);
- string cname = get_ccode_real_name (prop.get_accessor);
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "get_%s".printf (prop.name)), new CCodeIdentifier (cname));
+ CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (prop.get_accessor));
+ cfunc = cast_method_pointer (prop.base_property.get_accessor.get_method (), cfunc, base_type);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "get_%s".printf (prop.name)), cfunc);
}
if (prop.set_accessor != null) {
generate_property_accessor_declaration (prop.base_property.set_accessor, cfile);
- string cname = get_ccode_real_name (prop.set_accessor);
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "set_%s".printf (prop.name)), new CCodeIdentifier (cname));
+ CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (prop.set_accessor));
+ cfunc = cast_method_pointer (prop.base_property.set_accessor.get_method (), cfunc, base_type);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "set_%s".printf (prop.name)), cfunc);
}
}
}
@@ -1533,7 +1535,7 @@ public class Vala.GTypeModule : GErrorModule {
CCodeExpression cfunc = new CCodeIdentifier (cname);
if (prop.is_abstract || prop.is_virtual) {
- cfunc = cast_property_accessor_pointer (prop.get_accessor, cfunc, base_type);
+ cfunc = cast_method_pointer (prop.base_interface_property.get_accessor.get_method (), cfunc, base_type);
}
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), cfunc);
}
@@ -1547,7 +1549,7 @@ public class Vala.GTypeModule : GErrorModule {
CCodeExpression cfunc = new CCodeIdentifier (cname);
if (prop.is_abstract || prop.is_virtual) {
- cfunc = cast_property_accessor_pointer (prop.set_accessor, cfunc, base_type);
+ cfunc = cast_method_pointer (prop.base_interface_property.set_accessor.get_method (), cfunc, base_type);
}
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), cfunc);
}
@@ -1587,7 +1589,7 @@ public class Vala.GTypeModule : GErrorModule {
string cname = get_ccode_name (base_property.get_accessor);
CCodeExpression cfunc = new CCodeIdentifier (cname);
- cfunc = cast_property_accessor_pointer (prop.get_accessor, cfunc, iface);
+ cfunc = cast_method_pointer (base_property.get_accessor.get_method (), cfunc, iface);
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), cfunc);
}
if (base_property.set_accessor != null && prop.set_accessor != null) {
@@ -1595,7 +1597,7 @@ public class Vala.GTypeModule : GErrorModule {
string cname = get_ccode_name (base_property.set_accessor);
CCodeExpression cfunc = new CCodeIdentifier (cname);
- cfunc = cast_property_accessor_pointer (prop.set_accessor, cfunc, iface);
+ cfunc = cast_method_pointer (base_property.set_accessor.get_method (), cfunc, iface);
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), cfunc);
}
}
@@ -1605,20 +1607,6 @@ public class Vala.GTypeModule : GErrorModule {
cfile.add_function (iface_init);
}
- CCodeExpression cast_property_accessor_pointer (PropertyAccessor acc, CCodeExpression cfunc, ObjectTypeSymbol base_type) {
- string cast;
- if (acc.readable && acc.value_type.is_real_non_null_struct_type ()) {
- cast = "void (*) (%s *, %s *)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
- } else if (acc.readable) {
- cast = "%s (*) (%s *)".printf (get_ccode_name (acc.value_type), get_ccode_name (base_type));
- } else if (acc.value_type.is_real_non_null_struct_type ()) {
- cast = "void (*) (%s *, %s *)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
- } else {
- cast = "void (*) (%s *, %s)".printf (get_ccode_name (base_type), get_ccode_name (acc.value_type));
- }
- return new CCodeCastExpression (cfunc, cast);
- }
-
CCodeExpression cast_method_pointer (Method m, CCodeExpression cfunc, ObjectTypeSymbol base_type, int direction = 3) {
// Cast the function pointer to match the interface
string cast;
@@ -1710,7 +1698,7 @@ public class Vala.GTypeModule : GErrorModule {
if (prop.base_property == null || is_gsource) {
continue;
}
- var base_type = prop.base_property.parent_symbol;
+ var base_type = (ObjectTypeSymbol) prop.base_property.parent_symbol;
var ccast = new CCodeCastExpression (new CCodeIdentifier ("self"), "%s *".printf (get_ccode_name (base_type)));
@@ -1718,14 +1706,16 @@ public class Vala.GTypeModule : GErrorModule {
if (prop.get_accessor != null) {
generate_property_accessor_declaration (prop.base_property.get_accessor, cfile);
- string cname = get_ccode_real_name (prop.get_accessor);
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "get_%s".printf (prop.name)), new CCodeIdentifier (cname));
+ CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (prop.get_accessor));
+ cfunc = cast_method_pointer (prop.base_property.get_accessor.get_method (), cfunc, base_type);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "get_%s".printf (prop.name)), cfunc);
}
if (prop.set_accessor != null) {
generate_property_accessor_declaration (prop.base_property.set_accessor, cfile);
- string cname = get_ccode_real_name (prop.set_accessor);
- ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "set_%s".printf (prop.name)), new CCodeIdentifier (cname));
+ CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (prop.set_accessor));
+ cfunc = cast_method_pointer (prop.base_property.set_accessor.get_method (), cfunc, base_type);
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "set_%s".printf (prop.name)), cfunc);
}
}
}
diff --git a/tests/methods/array-length-type.c-expected b/tests/methods/array-length-type.c-expected
index 1f9c4e213..294185b86 100644
--- a/tests/methods/array-length-type.c-expected
+++ b/tests/methods/array-length-type.c-expected
@@ -734,8 +734,8 @@ foo_class_init (FooClass * klass,
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
((FooClass *) klass)->get_bar = (gint* (*) (Foo*, guint8*)) foo_real_get_bar;
((FooClass *) klass)->set_bar = (void (*) (Foo*, gint**, guint8*)) foo_real_set_bar;
- FOO_CLASS (klass)->get_manar = foo_real_get_manar;
- FOO_CLASS (klass)->set_manar = foo_real_set_manar;
+ FOO_CLASS (klass)->get_manar = (gint* (*) (Foo*, guint8*)) foo_real_get_manar;
+ FOO_CLASS (klass)->set_manar = (void (*) (Foo*, gint*, guint8)) foo_real_set_manar;
}
static void
@@ -1031,8 +1031,8 @@ bar_class_init (BarClass * klass,
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
((FooClass *) klass)->get_bar = (gint* (*) (Foo*, guint8*)) bar_real_get_bar;
((FooClass *) klass)->set_bar = (void (*) (Foo*, gint**, guint8*)) bar_real_set_bar;
- FOO_CLASS (klass)->get_manar = bar_real_get_manar;
- FOO_CLASS (klass)->set_manar = bar_real_set_manar;
+ FOO_CLASS (klass)->get_manar = (gint* (*) (Foo*, guint8*)) bar_real_get_manar;
+ FOO_CLASS (klass)->set_manar = (void (*) (Foo*, gint*, guint8)) bar_real_set_manar;
}
static void
diff --git a/tests/objects/bug667668.c-expected b/tests/objects/bug667668.c-expected
index 643616b28..5cc677e73 100644
--- a/tests/objects/bug667668.c-expected
+++ b/tests/objects/bug667668.c-expected
@@ -318,8 +318,8 @@ bar_class_init (BarClass * klass,
{
bar_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
- FOO_CLASS (klass)->get_foo = bar_real_get_foo;
- FOO_CLASS (klass)->set_foo = bar_real_set_foo;
+ FOO_CLASS (klass)->get_foo = (gconstpointer (*) (Foo*)) bar_real_get_foo;
+ FOO_CLASS (klass)->set_foo = (void (*) (Foo*, gconstpointer)) bar_real_set_foo;
G_OBJECT_CLASS (klass)->get_property = _vala_bar_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_bar_set_property;
G_OBJECT_CLASS (klass)->finalize = bar_finalize;
diff --git a/tests/objects/bug702736.c-expected b/tests/objects/bug702736.c-expected
index 7824b8436..038d673bb 100644
--- a/tests/objects/bug702736.c-expected
+++ b/tests/objects/bug702736.c-expected
@@ -263,7 +263,7 @@ class_b_class_init (ClassBClass * klass,
gpointer klass_data)
{
class_b_parent_class = g_type_class_peek_parent (klass);
- CLASS_A_CLASS (klass)->get_flags = class_b_real_get_flags;
+ CLASS_A_CLASS (klass)->get_flags = (gint (*) (ClassA*)) class_b_real_get_flags;
G_OBJECT_CLASS (klass)->get_property = _vala_class_b_get_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), CLASS_B_FLAGS_PROPERTY, class_b_properties[CLASS_B_FLAGS_PROPERTY] = g_param_spec_int ("flags", "flags", "flags", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}
@@ -400,7 +400,7 @@ class_d_class_init (ClassDClass * klass,
gpointer klass_data)
{
class_d_parent_class = g_type_class_peek_parent (klass);
- CLASS_A_CLASS (klass)->get_flags = class_d_real_get_flags;
+ CLASS_A_CLASS (klass)->get_flags = (gint (*) (ClassA*)) class_d_real_get_flags;
G_OBJECT_CLASS (klass)->get_property = _vala_class_d_get_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), CLASS_D_FLAGS_PROPERTY, class_d_properties[CLASS_D_FLAGS_PROPERTY] = g_param_spec_int ("flags", "flags", "flags", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}
diff --git a/tests/objects/bug741465.c-expected b/tests/objects/bug741465.c-expected
index 45a70c9de..0a5312a23 100644
--- a/tests/objects/bug741465.c-expected
+++ b/tests/objects/bug741465.c-expected
@@ -184,8 +184,8 @@ static void
foo_instance_init (Foo * self)
{
((AbstractFoo *) self)->foo = (const gchar* (*) (AbstractFoo*)) foo_real_foo;
- ((AbstractFoo *) self)->get_prop = foo_real_get_prop;
- ((AbstractFoo *) self)->set_prop = foo_real_set_prop;
+ ((AbstractFoo *) self)->get_prop = (gint (*) (AbstractFoo*)) foo_real_get_prop;
+ ((AbstractFoo *) self)->set_prop = (void (*) (AbstractFoo*, gint)) foo_real_set_prop;
}
Bar*
@@ -237,8 +237,8 @@ static void
bar_instance_init (Bar * self)
{
((AbstractFoo *) self)->foo = (const gchar* (*) (AbstractFoo*)) bar_real_foo;
- ((AbstractFoo *) self)->get_prop = bar_real_get_prop;
- ((AbstractFoo *) self)->set_prop = bar_real_set_prop;
+ ((AbstractFoo *) self)->get_prop = (gint (*) (AbstractFoo*)) bar_real_get_prop;
+ ((AbstractFoo *) self)->set_prop = (void (*) (AbstractFoo*, gint)) bar_real_set_prop;
}
static const gchar*
@@ -320,8 +320,8 @@ manam_instance_init (Manam * self)
{
((Manam *) self)->foo = (const gchar* (*) (Manam*)) manam_real_foo;
((Manam *) self)->foo_plain = (gint (*) (Manam*)) manam_real_foo_plain;
- ((Manam *) self)->get_prop = manam_real_get_prop;
- ((Manam *) self)->set_prop = manam_real_set_prop;
+ ((Manam *) self)->get_prop = (gint (*) (Manam*)) manam_real_get_prop;
+ ((Manam *) self)->set_prop = (void (*) (Manam*, gint)) manam_real_set_prop;
self->field = 23;
}
diff --git a/tests/objects/bug764481.c-expected b/tests/objects/bug764481.c-expected
index 016092893..c4d02772e 100644
--- a/tests/objects/bug764481.c-expected
+++ b/tests/objects/bug764481.c-expected
@@ -352,8 +352,8 @@ base_foo_class_init (BaseFooClass * klass,
{
base_foo_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &BaseFoo_private_offset);
- BASE_FOO_CLASS (klass)->get_st = base_foo_real_get_st;
- BASE_FOO_CLASS (klass)->set_st = base_foo_real_set_st;
+ BASE_FOO_CLASS (klass)->get_st = (void (*) (BaseFoo*, Manam*)) base_foo_real_get_st;
+ BASE_FOO_CLASS (klass)->set_st = (void (*) (BaseFoo*, Manam*)) base_foo_real_set_st;
G_OBJECT_CLASS (klass)->get_property = _vala_base_foo_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_base_foo_set_property;
G_OBJECT_CLASS (klass)->finalize = base_foo_finalize;
@@ -516,8 +516,8 @@ foo_class_init (FooClass * klass,
{
foo_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
- FOO_CLASS (klass)->get_st = foo_real_get_st;
- FOO_CLASS (klass)->set_st = foo_real_set_st;
+ FOO_CLASS (klass)->get_st = (void (*) (Foo*, Manam*)) foo_real_get_st;
+ FOO_CLASS (klass)->set_st = (void (*) (Foo*, Manam*)) foo_real_set_st;
G_OBJECT_CLASS (klass)->get_property = _vala_foo_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_foo_set_property;
G_OBJECT_CLASS (klass)->finalize = foo_finalize;
@@ -646,8 +646,8 @@ bar_class_init (BarClass * klass,
gpointer klass_data)
{
bar_parent_class = g_type_class_peek_parent (klass);
- FOO_CLASS (klass)->get_st = bar_real_get_st;
- FOO_CLASS (klass)->set_st = bar_real_set_st;
+ FOO_CLASS (klass)->get_st = (void (*) (Foo*, Manam*)) bar_real_get_st;
+ FOO_CLASS (klass)->set_st = (void (*) (Foo*, Manam*)) bar_real_set_st;
G_OBJECT_CLASS (klass)->get_property = _vala_bar_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_bar_set_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), BAR_ST_PROPERTY, bar_properties[BAR_ST_PROPERTY] = g_param_spec_boxed ("st", "st", "st", TYPE_MANAM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
@@ -765,8 +765,8 @@ baz_class_init (BazClass * klass,
gpointer klass_data)
{
baz_parent_class = g_type_class_peek_parent (klass);
- BASE_FOO_CLASS (klass)->get_st = baz_real_get_st;
- BASE_FOO_CLASS (klass)->set_st = baz_real_set_st;
+ BASE_FOO_CLASS (klass)->get_st = (void (*) (BaseFoo*, Manam*)) baz_real_get_st;
+ BASE_FOO_CLASS (klass)->set_st = (void (*) (BaseFoo*, Manam*)) baz_real_set_st;
G_OBJECT_CLASS (klass)->get_property = _vala_baz_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_baz_set_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), BAZ_ST_PROPERTY, baz_properties[BAZ_ST_PROPERTY] = g_param_spec_boxed ("st", "st", "st", TYPE_MANAM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
diff --git a/tests/objects/bug779219.c-expected b/tests/objects/bug779219.c-expected
index 30eb64ca4..5b063a55e 100644
--- a/tests/objects/bug779219.c-expected
+++ b/tests/objects/bug779219.c-expected
@@ -188,7 +188,7 @@ foo_ifoo_interface_init (IFooIface * iface,
gpointer iface_data)
{
foo_ifoo_parent_iface = g_type_interface_peek_parent (iface);
- iface->get_foo = (gint (*) (IFoo *)) foo_get_foo;
+ iface->get_foo = (gint (*) (IFoo*)) foo_get_foo;
}
static void
@@ -264,7 +264,7 @@ bar_class_init (BarClass * klass,
gpointer klass_data)
{
bar_parent_class = g_type_class_peek_parent (klass);
- FOO_CLASS (klass)->get_foo = bar_real_get_foo;
+ FOO_CLASS (klass)->get_foo = (gint (*) (Foo*)) bar_real_get_foo;
G_OBJECT_CLASS (klass)->get_property = _vala_bar_get_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), BAR_FOO_PROPERTY, bar_properties[BAR_FOO_PROPERTY] = g_param_spec_int ("foo", "foo", "foo", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}
diff --git a/tests/objects/member-initializer-base-properties.c-expected b/tests/objects/member-initializer-base-properties.c-expected
index 7e9e769c4..d545238ce 100644
--- a/tests/objects/member-initializer-base-properties.c-expected
+++ b/tests/objects/member-initializer-base-properties.c-expected
@@ -390,8 +390,8 @@ bar_class_init (BarClass * klass,
bar_parent_class = g_type_class_peek_parent (klass);
((BarClass *) klass)->finalize = bar_finalize;
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
- BAR_CLASS (klass)->get_prop_v = bar_real_get_prop_v;
- BAR_CLASS (klass)->set_prop_v = bar_real_set_prop_v;
+ BAR_CLASS (klass)->get_prop_v = (const gchar* (*) (Bar*)) bar_real_get_prop_v;
+ BAR_CLASS (klass)->set_prop_v = (void (*) (Bar*, const gchar*)) bar_real_set_prop_v;
}
static void
@@ -530,8 +530,8 @@ foo_class_init (FooClass * klass,
foo_parent_class = g_type_class_peek_parent (klass);
((BarClass *) klass)->finalize = foo_finalize;
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
- BAR_CLASS (klass)->get_prop_v = foo_real_get_prop_v;
- BAR_CLASS (klass)->set_prop_v = foo_real_set_prop_v;
+ BAR_CLASS (klass)->get_prop_v = (const gchar* (*) (Bar*)) foo_real_get_prop_v;
+ BAR_CLASS (klass)->set_prop_v = (void (*) (Bar*, const gchar*)) foo_real_set_prop_v;
}
static void
diff --git a/tests/objects/properties.c-expected b/tests/objects/properties.c-expected
index 00e0f0a7c..643aa51b3 100644
--- a/tests/objects/properties.c-expected
+++ b/tests/objects/properties.c-expected
@@ -1637,8 +1637,8 @@ maman_bar_class_init (MamanBarClass * klass,
{
maman_bar_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &MamanBar_private_offset);
- MAMAN_FOO_CLASS (klass)->get_abstract_base_property = maman_bar_real_get_abstract_base_property;
- MAMAN_FOO_CLASS (klass)->set_abstract_base_property = maman_bar_real_set_abstract_base_property;
+ MAMAN_FOO_CLASS (klass)->get_abstract_base_property = (gint (*) (MamanFoo*)) maman_bar_real_get_abstract_base_property;
+ MAMAN_FOO_CLASS (klass)->set_abstract_base_property = (void (*) (MamanFoo*, gint)) maman_bar_real_set_abstract_base_property;
G_OBJECT_CLASS (klass)->get_property = _vala_maman_bar_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_maman_bar_set_property;
G_OBJECT_CLASS (klass)->finalize = maman_bar_finalize;
@@ -2131,8 +2131,8 @@ maman_biz_class_init (MamanBizClass * klass,
{
maman_biz_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &MamanBiz_private_offset);
- MAMAN_ABIZ_CLASS (klass)->get_number2 = maman_biz_real_get_number2;
- MAMAN_ABIZ_CLASS (klass)->set_number2 = maman_biz_real_set_number2;
+ MAMAN_ABIZ_CLASS (klass)->get_number2 = (gint (*) (MamanABiz*)) maman_biz_real_get_number2;
+ MAMAN_ABIZ_CLASS (klass)->set_number2 = (void (*) (MamanABiz*, gint)) maman_biz_real_set_number2;
G_OBJECT_CLASS (klass)->get_property = _vala_maman_biz_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_maman_biz_set_property;
G_OBJECT_CLASS (klass)->finalize = maman_biz_finalize;
diff --git a/tests/objects/property-array.c-expected b/tests/objects/property-array.c-expected
index 2c2898f34..3dd9eaeda 100644
--- a/tests/objects/property-array.c-expected
+++ b/tests/objects/property-array.c-expected
@@ -810,12 +810,12 @@ foo_class_init (FooClass * klass,
foo_parent_class = g_type_class_peek_parent (klass);
((FooClass *) klass)->finalize = foo_finalize;
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
- FOO_CLASS (klass)->get_array_v = foo_real_get_array_v;
- FOO_CLASS (klass)->set_array_v = foo_real_set_array_v;
- FOO_CLASS (klass)->get_array_no_length_v = foo_real_get_array_no_length_v;
- FOO_CLASS (klass)->set_array_no_length_v = foo_real_set_array_no_length_v;
- FOO_CLASS (klass)->get_strv_v = foo_real_get_strv_v;
- FOO_CLASS (klass)->set_strv_v = foo_real_set_strv_v;
+ FOO_CLASS (klass)->get_array_v = (Manam** (*) (Foo*, gint*)) foo_real_get_array_v;
+ FOO_CLASS (klass)->set_array_v = (void (*) (Foo*, Manam**, gint)) foo_real_set_array_v;
+ FOO_CLASS (klass)->get_array_no_length_v = (Manam** (*) (Foo*)) foo_real_get_array_no_length_v;
+ FOO_CLASS (klass)->set_array_no_length_v = (void (*) (Foo*, Manam**)) foo_real_set_array_no_length_v;
+ FOO_CLASS (klass)->get_strv_v = (gchar** (*) (Foo*)) foo_real_get_strv_v;
+ FOO_CLASS (klass)->set_strv_v = (void (*) (Foo*, gchar**)) foo_real_set_strv_v;
}
static void
@@ -1166,10 +1166,10 @@ bar_class_init (BarClass * klass,
{
bar_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
- BAR_CLASS (klass)->get_array_v = bar_real_get_array_v;
- BAR_CLASS (klass)->set_array_v = bar_real_set_array_v;
- BAR_CLASS (klass)->get_strv_v = bar_real_get_strv_v;
- BAR_CLASS (klass)->set_strv_v = bar_real_set_strv_v;
+ BAR_CLASS (klass)->get_array_v = (Manam** (*) (Bar*)) bar_real_get_array_v;
+ BAR_CLASS (klass)->set_array_v = (void (*) (Bar*, Manam**)) bar_real_set_array_v;
+ BAR_CLASS (klass)->get_strv_v = (gchar** (*) (Bar*)) bar_real_get_strv_v;
+ BAR_CLASS (klass)->set_strv_v = (void (*) (Bar*, gchar**)) bar_real_set_strv_v;
G_OBJECT_CLASS (klass)->get_property = _vala_bar_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_bar_set_property;
G_OBJECT_CLASS (klass)->finalize = bar_finalize;
diff --git a/tests/objects/property-delegate-owned.c-expected b/tests/objects/property-delegate-owned.c-expected
index 2165bbf3d..df1c1fa37 100644
--- a/tests/objects/property-delegate-owned.c-expected
+++ b/tests/objects/property-delegate-owned.c-expected
@@ -588,10 +588,10 @@ foo_class_init (FooClass * klass,
foo_parent_class = g_type_class_peek_parent (klass);
((FooClass *) klass)->finalize = foo_finalize;
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
- FOO_CLASS (klass)->get_foo = foo_real_get_foo;
- FOO_CLASS (klass)->set_foo = foo_real_set_foo;
- FOO_CLASS (klass)->get_bar = foo_real_get_bar;
- FOO_CLASS (klass)->set_bar = foo_real_set_bar;
+ FOO_CLASS (klass)->get_foo = (FooFunc (*) (Foo*, gpointer*)) foo_real_get_foo;
+ FOO_CLASS (klass)->set_foo = (void (*) (Foo*, FooFunc, gpointer, GDestroyNotify)) foo_real_set_foo;
+ FOO_CLASS (klass)->get_bar = (FooFunc (*) (Foo*, gpointer*)) foo_real_get_bar;
+ FOO_CLASS (klass)->set_bar = (void (*) (Foo*, FooFunc, gpointer, GDestroyNotify)) foo_real_set_bar;
}
static void
@@ -599,10 +599,10 @@ foo_ifoo_interface_init (IFooIface * iface,
gpointer iface_data)
{
foo_ifoo_parent_iface = g_type_interface_peek_parent (iface);
- iface->get_foo = (FooFunc (*) (IFoo *)) foo_get_foo;
- iface->set_foo = (void (*) (IFoo *, FooFunc)) foo_set_foo;
- iface->get_bar = (FooFunc (*) (IFoo *)) foo_get_bar;
- iface->set_bar = (void (*) (IFoo *, FooFunc)) foo_set_bar;
+ iface->get_foo = (FooFunc (*) (IFoo*, gpointer*)) foo_get_foo;
+ iface->set_foo = (void (*) (IFoo*, FooFunc, gpointer, GDestroyNotify)) foo_set_foo;
+ iface->get_bar = (FooFunc (*) (IFoo*, gpointer*)) foo_get_bar;
+ iface->set_bar = (void (*) (IFoo*, FooFunc, gpointer, GDestroyNotify)) foo_set_bar;
}
static void
@@ -826,10 +826,10 @@ bar_class_init (BarClass * klass,
bar_parent_class = g_type_class_peek_parent (klass);
((FooClass *) klass)->finalize = bar_finalize;
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
- FOO_CLASS (klass)->get_foo = bar_real_get_foo;
- FOO_CLASS (klass)->set_foo = bar_real_set_foo;
- FOO_CLASS (klass)->get_bar = bar_real_get_bar;
- FOO_CLASS (klass)->set_bar = bar_real_set_bar;
+ FOO_CLASS (klass)->get_foo = (FooFunc (*) (Foo*, gpointer*)) bar_real_get_foo;
+ FOO_CLASS (klass)->set_foo = (void (*) (Foo*, FooFunc, gpointer, GDestroyNotify)) bar_real_set_foo;
+ FOO_CLASS (klass)->get_bar = (FooFunc (*) (Foo*, gpointer*)) bar_real_get_bar;
+ FOO_CLASS (klass)->set_bar = (void (*) (Foo*, FooFunc, gpointer, GDestroyNotify)) bar_real_set_bar;
}
static void
diff --git a/tests/objects/property-delegate.c-expected b/tests/objects/property-delegate.c-expected
index 4484071d5..17977f8b5 100644
--- a/tests/objects/property-delegate.c-expected
+++ b/tests/objects/property-delegate.c-expected
@@ -507,10 +507,10 @@ foo_class_init (FooClass * klass,
foo_parent_class = g_type_class_peek_parent (klass);
((FooClass *) klass)->finalize = foo_finalize;
g_type_class_adjust_private_offset (klass, &Foo_private_offset);
- FOO_CLASS (klass)->get_deleg_v = foo_real_get_deleg_v;
- FOO_CLASS (klass)->set_deleg_v = foo_real_set_deleg_v;
- FOO_CLASS (klass)->get_deleg_no_target_v = foo_real_get_deleg_no_target_v;
- FOO_CLASS (klass)->set_deleg_no_target_v = foo_real_set_deleg_no_target_v;
+ FOO_CLASS (klass)->get_deleg_v = (Manam (*) (Foo*, gpointer*)) foo_real_get_deleg_v;
+ FOO_CLASS (klass)->set_deleg_v = (void (*) (Foo*, Manam, gpointer)) foo_real_set_deleg_v;
+ FOO_CLASS (klass)->get_deleg_no_target_v = (Manam (*) (Foo*)) foo_real_get_deleg_no_target_v;
+ FOO_CLASS (klass)->set_deleg_no_target_v = (void (*) (Foo*, Manam)) foo_real_set_deleg_no_target_v;
}
static void
@@ -705,8 +705,8 @@ bar_class_init (BarClass * klass,
{
bar_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &Bar_private_offset);
- BAR_CLASS (klass)->get_deleg_v = bar_real_get_deleg_v;
- BAR_CLASS (klass)->set_deleg_v = bar_real_set_deleg_v;
+ BAR_CLASS (klass)->get_deleg_v = (Manam (*) (Bar*)) bar_real_get_deleg_v;
+ BAR_CLASS (klass)->set_deleg_v = (void (*) (Bar*, Manam)) bar_real_set_deleg_v;
G_OBJECT_CLASS (klass)->get_property = _vala_bar_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_bar_set_property;
G_OBJECT_CLASS (klass)->finalize = bar_finalize;
diff --git a/tests/objects/property-real-struct-assignment.c-expected b/tests/objects/property-real-struct-assignment.c-expected
index 624f94746..52cea4ef2 100644
--- a/tests/objects/property-real-struct-assignment.c-expected
+++ b/tests/objects/property-real-struct-assignment.c-expected
@@ -324,8 +324,8 @@ manam_class_init (ManamClass * klass,
{
manam_parent_class = g_type_class_peek_parent (klass);
g_type_class_adjust_private_offset (klass, &Manam_private_offset);
- MANAM_CLASS (klass)->get_faz = manam_real_get_faz;
- MANAM_CLASS (klass)->set_faz = manam_real_set_faz;
+ MANAM_CLASS (klass)->get_faz = (void (*) (Manam*, Foo*)) manam_real_get_faz;
+ MANAM_CLASS (klass)->set_faz = (void (*) (Manam*, Foo*)) manam_real_set_faz;
G_OBJECT_CLASS (klass)->get_property = _vala_manam_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_manam_set_property;
G_OBJECT_CLASS (klass)->finalize = manam_finalize;