From d32e981f704891e7532d15c8458c752fec86f7df Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Fri, 16 Oct 2009 17:59:30 +0200 Subject: [PATCH] GAsync: Fix non-closure lambda expressions in instance methods Fixes bug 598697. --- codegen/valaccodedelegatemodule.vala | 2 +- tests/Makefile.am | 1 + tests/asynchronous/bug598697.vala | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 tests/asynchronous/bug598697.vala diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index 0dd60fa64..4f656d75f 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -161,7 +161,7 @@ internal class Vala.CCodeDelegateModule : CCodeArrayModule { } return delegate_target; } else if (get_this_type () != null || in_constructor) { - CCodeExpression delegate_target = new CCodeIdentifier ("self"); + CCodeExpression delegate_target = get_result_cexpression ("self"); if (expr_owned) { if (get_this_type () != null) { var ref_call = new CCodeFunctionCall (get_dup_func_expression (get_this_type (), delegate_expr.source_reference)); diff --git a/tests/Makefile.am b/tests/Makefile.am index 84b888193..0d041e5a3 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -64,6 +64,7 @@ TESTS = \ asynchronous/bug596177.vala \ asynchronous/bug597294.vala \ asynchronous/bug598677.vala \ + asynchronous/bug598697.vala \ asynchronous/bug598698.vala \ dbus/basic-types.test \ dbus/arrays.test \ diff --git a/tests/asynchronous/bug598697.vala b/tests/asynchronous/bug598697.vala new file mode 100644 index 000000000..804039a42 --- /dev/null +++ b/tests/asynchronous/bug598697.vala @@ -0,0 +1,8 @@ +public class Foo { + public async void do_foo () { + Func f = () => {}; + } +} + +void main () { +} -- 2.47.3