vala r2132 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2132 - in trunk: . gobject
- Date: Tue, 9 Dec 2008 20:34:11 +0000 (UTC)
Author: juergbi
Date: Tue Dec 9 20:34:11 2008
New Revision: 2132
URL: http://svn.gnome.org/viewvc/vala?rev=2132&view=rev
Log:
2008-12-09 JÃrg Billeter <j bitron ch>
* gobject/valagsignalmodule.vala:
Do not use g_signal_connect_object if the target object is not a
GObject, fixes bug 539614
Modified:
trunk/ChangeLog
trunk/gobject/valagsignalmodule.vala
Modified: trunk/gobject/valagsignalmodule.vala
==============================================================================
--- trunk/gobject/valagsignalmodule.vala (original)
+++ trunk/gobject/valagsignalmodule.vala Tue Dec 9 20:34:11 2008
@@ -435,6 +435,7 @@
var sig = (Signal) assignment.left.symbol_reference;
var m = (Method) assignment.right.symbol_reference;
+ var target_type_symbol = m.parent_symbol as TypeSymbol;
string connect_func;
bool disconnect = false;
@@ -443,8 +444,13 @@
if (sig is DynamicSignal) {
connect_func = head.get_dynamic_signal_connect_wrapper_name ((DynamicSignal) sig);
} else {
- connect_func = "g_signal_connect_object";
- if (m.binding != MemberBinding.INSTANCE) {
+ if (m.binding == MemberBinding.INSTANCE) {
+ if (target_type_symbol != null && target_type_symbol.is_subtype_of (gobject_type)) {
+ connect_func = "g_signal_connect_object";
+ } else {
+ connect_func = "g_signal_connect";
+ }
+ } else {
connect_func = "g_signal_connect";
}
}
@@ -553,7 +559,8 @@
} else if (assignment.right is LambdaExpression) {
ccall.add_argument (new CCodeIdentifier ("self"));
}
- if (!disconnect && !(sig is DynamicSignal)) {
+ if (!disconnect && !(sig is DynamicSignal)
+ && target_type_symbol != null && target_type_symbol.is_subtype_of (gobject_type)) {
// g_signal_connect_object
// fifth argument: connect_flags
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]