summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);