From: Jürg Billeter Date: Mon, 28 Sep 2009 16:01:46 +0000 (+0200) Subject: Fix delegate variables in GObject creation methods X-Git-Tag: 0.7.8~99 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9c0e7c1447bb932df92e6f0a0966e1da363f2c9d;p=thirdparty%2Fvala.git Fix delegate variables in GObject creation methods Fixes bug 596621. --- diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala index aa2c1fe4b..93d49ab5d 100644 --- a/codegen/valaccodemethodmodule.vala +++ b/codegen/valaccodemethodmodule.vala @@ -311,6 +311,7 @@ internal class Vala.CCodeMethodModule : CCodeStructModule { if (!local.floating && requires_destroy (local.variable_type)) { var ma = new MemberAccess.simple (local.name); ma.symbol_reference = local; + ma.value_type = local.variable_type.copy (); cblock.add_statement (new CCodeExpressionStatement (get_unref_expression (get_variable_cexpression (local.name), local.variable_type, ma))); } } diff --git a/tests/Makefile.am b/tests/Makefile.am index 8c83e86f7..f1058b826 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -48,6 +48,7 @@ TESTS = \ objects/test-029.vala \ objects/test-034.vala \ objects/bug593260.vala \ + objects/bug596621.vala \ errors/errors.vala \ errors/bug596228.vala \ asynchronous/bug595735.vala \ diff --git a/tests/objects/bug596621.vala b/tests/objects/bug596621.vala new file mode 100644 index 000000000..348ea40ad --- /dev/null +++ b/tests/objects/bug596621.vala @@ -0,0 +1,15 @@ +class Foo : Object { + [CCode (has_construct_function = false)] + public Foo () { + } +} + +class Bar : Foo { + public Bar () { + Func baz; + } +} + +void main () { +} +