vala r1037 - in trunk: . gobject vala
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1037 - in trunk: . gobject vala
- Date: Sat, 23 Feb 2008 17:23:53 +0000 (GMT)
Author: juergbi
Date: Sat Feb 23 17:23:53 2008
New Revision: 1037
URL: http://svn.gnome.org/viewvc/vala?rev=1037&view=rev
Log:
2008-02-23 Juerg Billeter <j bitron ch>
* vala/valaformalparameter.vala,
gobject/valaccodeassignmentbinding.vala,
gobject/valaccodegeneratorinvocationexpression.vala: fix D-Bus
method calls and signal handlers, fixes bug 516194
Modified:
trunk/ChangeLog
trunk/gobject/valaccodeassignmentbinding.vala
trunk/gobject/valaccodegeneratorinvocationexpression.vala
trunk/vala/valaformalparameter.vala
Modified: trunk/gobject/valaccodeassignmentbinding.vala
==============================================================================
--- trunk/gobject/valaccodeassignmentbinding.vala (original)
+++ trunk/gobject/valaccodeassignmentbinding.vala Sat Feb 23 17:23:53 2008
@@ -196,7 +196,12 @@
}
// third resp. sixth argument: handler
- ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier (generate_signal_handler_wrapper (m, sig)), "GCallback"));
+ if (sig is DBusSignal) {
+ // signal handler wrappers not used for D-Bus signals
+ ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier (m.get_cname ()), "GCallback"));
+ } else {
+ ccall.add_argument (new CCodeCastExpression (new CCodeIdentifier (generate_signal_handler_wrapper (m, sig)), "GCallback"));
+ }
if (m.instance) {
// g_signal_connect_object or g_signal_handlers_disconnect_matched
@@ -249,7 +254,7 @@
first = false;
continue;
}
- sig.add_parameter (param);
+ sig.add_parameter (param.copy ());
}
sig.accept (codegen);
Modified: trunk/gobject/valaccodegeneratorinvocationexpression.vala
==============================================================================
--- trunk/gobject/valaccodegeneratorinvocationexpression.vala (original)
+++ trunk/gobject/valaccodegeneratorinvocationexpression.vala Sat Feb 23 17:23:53 2008
@@ -169,8 +169,8 @@
cb_fun.block.add_statement (cdecl);
cend_call.add_argument (get_dbus_array_type (array_type));
cend_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (param.name)));
- creply_call.add_argument (new CCodeMemberAccess.pointer (new CCodeIdentifier (param.name), "len"));
creply_call.add_argument (new CCodeMemberAccess.pointer (new CCodeIdentifier (param.name), "data"));
+ creply_call.add_argument (new CCodeMemberAccess.pointer (new CCodeIdentifier (param.name), "len"));
} else {
var cdecl = new CCodeDeclaration (param.type_reference.get_cname ());
cdecl.add_declarator (new CCodeVariableDeclarator (param.name));
@@ -218,7 +218,7 @@
break;
}
- carg_map.set (get_param_pos (i - 0.1), new CCodeIdentifier (arg.static_type.data_type.get_type_id ()));
+ carg_map.set (get_param_pos (i - 0.1, true), new CCodeIdentifier (arg.static_type.data_type.get_type_id ()));
}
CCodeExpression cexpr = (CCodeExpression) arg.ccodenode;
@@ -365,7 +365,7 @@
var dbus_attr = dbus_iface.get_attribute ("DBusInterface");
carg_map.set (get_param_pos (-1), new CCodeConstant ("\"%s\"".printf (dbus_attr.get_string ("name"))));
} else if (m is DBusMethod) {
- carg_map.set (get_param_pos (-1), new CCodeIdentifier ("G_TYPE_INVALID"));
+ carg_map.set (get_param_pos (-1, true), new CCodeIdentifier ("G_TYPE_INVALID"));
}
if (expr.can_fail && !(m is DBusMethod)) {
Modified: trunk/vala/valaformalparameter.vala
==============================================================================
--- trunk/vala/valaformalparameter.vala (original)
+++ trunk/vala/valaformalparameter.vala Sat Feb 23 17:23:53 2008
@@ -148,4 +148,13 @@
}
}
}
+
+ public FormalParameter copy () {
+ if (!ellipsis) {
+ var result = new FormalParameter (name, type_reference, source_reference);
+ return result;
+ } else {
+ return new FormalParameter.with_ellipsis ();
+ }
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]