summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2008-11-20 20:56:35 +0000
committerJürg Billeter <juergbi@src.gnome.org>2008-11-20 20:56:35 +0000
commit258aac4d48dc21d430bed8d1428dde8333ce9a2c (patch)
treeaed69b1c2263e90ca90151a8d3d892d7d0bf59b7
parent2af5cc83c487aab712e036bbeae608cd4692390b (diff)
downloadvala-258aac4d48dc21d430bed8d1428dde8333ce9a2c.tar.gz
Fix base access to virtual signal handlers with return values, fixes bug
2008-11-20 Jürg Billeter <j@bitron.ch> * gobject/valaccodemethodcallmodule.vala: Fix base access to virtual signal handlers with return values, fixes bug 538901 svn path=/trunk/; revision=2040
-rw-r--r--ChangeLog7
-rw-r--r--gobject/valaccodemethodcallmodule.vala4
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b83deaae5..0ea48beda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-11-20 Jürg Billeter <j@bitron.ch>
+ * gobject/valaccodemethodcallmodule.vala:
+
+ Fix base access to virtual signal handlers with return values,
+ fixes bug 538901
+
+2008-11-20 Jürg Billeter <j@bitron.ch>
+
* vala/Makefile.am:
* vala/valacodevisitor.vala:
* vala/valadynamicmethod.vala:
diff --git a/gobject/valaccodemethodcallmodule.vala b/gobject/valaccodemethodcallmodule.vala
index a3fcceba0..5d4d9cc42 100644
--- a/gobject/valaccodemethodcallmodule.vala
+++ b/gobject/valaccodemethodcallmodule.vala
@@ -383,7 +383,9 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
if (itype is SignalType && !(itype.get_return_type () is VoidType)) {
var sig = ((SignalType) itype).signal_symbol;
- if (!sig.has_emitter) {
+ if (ma != null && ma.inner is BaseAccess && sig.is_virtual) {
+ // normal return value for base access
+ } else if (!sig.has_emitter) {
var temp_var = get_temp_variable (itype.get_return_type ());
var temp_ref = new CCodeIdentifier (temp_var.name);