[vala] GAsync: Fix connecting signal handlers in async methods
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] GAsync: Fix connecting signal handlers in async methods
- Date: Fri, 2 Oct 2009 20:12:21 +0000 (UTC)
commit ca65d7ec727bea515030d0c9293979b2ac1cf188
Author: Jürg Billeter <j bitron ch>
Date: Fri Oct 2 22:11:11 2009 +0200
GAsync: Fix connecting signal handlers in async methods
Fixes bug 595755.
codegen/valagsignalmodule.vala | 6 +++---
tests/Makefile.am | 1 +
tests/asynchronous/bug595755.vala | 11 +++++++++++
3 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valagsignalmodule.vala b/codegen/valagsignalmodule.vala
index 2387b12..8bfcd9f 100644
--- a/codegen/valagsignalmodule.vala
+++ b/codegen/valagsignalmodule.vala
@@ -594,7 +594,7 @@ internal class Vala.GSignalModule : GObjectModule {
if (ma.inner != null) {
ccall.add_argument ((CCodeExpression) get_ccodenode (ma.inner));
} else {
- ccall.add_argument (new CCodeIdentifier ("self"));
+ ccall.add_argument (get_result_cexpression ("self"));
}
if (sig is DynamicSignal) {
@@ -671,10 +671,10 @@ internal class Vala.GSignalModule : GObjectModule {
if (right_ma.inner != null) {
ccall.add_argument ((CCodeExpression) right_ma.inner.ccodenode);
} else {
- ccall.add_argument (new CCodeIdentifier ("self"));
+ ccall.add_argument (get_result_cexpression ("self"));
}
} else if (handler is LambdaExpression) {
- ccall.add_argument (new CCodeIdentifier ("self"));
+ ccall.add_argument (get_result_cexpression ("self"));
}
if (!disconnect && !(sig is DynamicSignal)
&& in_gobject_instance (m)) {
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2696259..eb19c7f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -57,6 +57,7 @@ TESTS = \
errors/bug579101.vala \
errors/bug596228.vala \
asynchronous/bug595735.vala \
+ asynchronous/bug595755.vala \
asynchronous/bug596177.vala \
dbus/basic-types.test \
dbus/arrays.test \
diff --git a/tests/asynchronous/bug595755.vala b/tests/asynchronous/bug595755.vala
new file mode 100644
index 0000000..ac9bbd5
--- /dev/null
+++ b/tests/asynchronous/bug595755.vala
@@ -0,0 +1,11 @@
+class Foo : Object {
+ public signal void bar ();
+
+ public async void do_foo () {
+ bar.connect (() => {
+ });
+ }
+}
+
+void main () {
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]