vala r2128 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2128 - in trunk: . gobject
- Date: Tue, 9 Dec 2008 16:50:17 +0000 (UTC)
Author: juergbi
Date: Tue Dec 9 16:50:17 2008
New Revision: 2128
URL: http://svn.gnome.org/viewvc/vala?rev=2128&view=rev
Log:
2008-12-09 JÃrg Billeter <j bitron ch>
* gobject/valadbusclientmodule.vala:
Fix dbus-glib type for structs
Modified:
trunk/ChangeLog
trunk/gobject/valadbusclientmodule.vala
Modified: trunk/gobject/valadbusclientmodule.vala
==============================================================================
--- trunk/gobject/valadbusclientmodule.vala (original)
+++ trunk/gobject/valadbusclientmodule.vala Tue Dec 9 16:50:17 2008
@@ -497,10 +497,29 @@
var type_args = data_type.get_type_arguments ();
cmap_type.add_argument (new CCodeConstant ("\"GHashTable\""));
- foreach (DataType type_arg in type_args)
+ foreach (DataType type_arg in type_args) {
cmap_type.add_argument (get_dbus_g_type (type_arg));
+ }
return cmap_type;
+ } else if (data_type.data_type.get_type_signature ().has_prefix ("(")) {
+ // struct parameter
+ var st = (Struct) data_type.data_type;
+
+ var type_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_g_type_get_struct"));
+ type_call.add_argument (new CCodeConstant ("\"GValueArray\""));
+
+ foreach (Field f in st.get_fields ()) {
+ if (f.binding != MemberBinding.INSTANCE) {
+ continue;
+ }
+
+ type_call.add_argument (get_dbus_g_type (f.field_type));
+ }
+
+ type_call.add_argument (new CCodeConstant ("G_TYPE_INVALID"));
+
+ return type_call;
} else {
return new CCodeIdentifier (data_type.data_type.get_type_id ());
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]