vala r2127 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2127 - in trunk: . gobject
- Date: Tue, 9 Dec 2008 13:38:19 +0000 (UTC)
Author: juergbi
Date: Tue Dec 9 13:38:19 2008
New Revision: 2127
URL: http://svn.gnome.org/viewvc/vala?rev=2127&view=rev
Log:
2008-12-09 JÃrg Billeter <j bitron ch>
* gobject/valadbusclientmodule.vala:
* gobject/valagsignalmodule.vala:
Use specialized dbus-glib types for signals in D-Bus servers
Modified:
trunk/ChangeLog
trunk/gobject/valadbusclientmodule.vala
trunk/gobject/valagsignalmodule.vala
Modified: trunk/gobject/valadbusclientmodule.vala
==============================================================================
--- trunk/gobject/valadbusclientmodule.vala (original)
+++ trunk/gobject/valadbusclientmodule.vala Tue Dec 9 13:38:19 2008
@@ -467,7 +467,7 @@
}
}
- CCodeExpression get_dbus_g_type (DataType data_type) {
+ public override CCodeExpression get_dbus_g_type (DataType data_type) {
if (data_type is ArrayType) {
var array_type = data_type as ArrayType;
if (array_type.element_type.data_type == string_type.data_type) {
Modified: trunk/gobject/valagsignalmodule.vala
==============================================================================
--- trunk/gobject/valagsignalmodule.vala (original)
+++ trunk/gobject/valagsignalmodule.vala Tue Dec 9 13:38:19 2008
@@ -382,7 +382,11 @@
csignew.add_argument (new CCodeConstant ("%d".printf (params_len)));
foreach (FormalParameter param in params) {
- if (param.parameter_type.is_array ()) {
+ if (type.get_attribute ("DBus") != null) {
+ // workaround for dbus-glib based D-Bus servers
+ // drop when bug 560034 has been fixed
+ csignew.add_argument (get_dbus_g_type (param.parameter_type));
+ } else if (param.parameter_type.is_array ()) {
if (((ArrayType) param.parameter_type).element_type.data_type == string_type.data_type) {
csignew.add_argument (new CCodeConstant ("G_TYPE_STRV"));
} else {
@@ -403,6 +407,10 @@
return csignew;
}
+ public virtual CCodeExpression get_dbus_g_type (DataType data_type) {
+ return new CCodeConstant (data_type.data_type.get_type_id ());
+ }
+
public override void visit_element_access (ElementAccess expr) {
if (expr.container is MemberAccess && expr.container.symbol_reference is Signal) {
// detailed signal emission
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]