[vala/wip/dbusgen: 386/390] dbusgen: Use strings and string-arrays like gdbus-codegen does
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/dbusgen: 386/390] dbusgen: Use strings and string-arrays like gdbus-codegen does
- Date: Wed, 23 Dec 2020 08:16:19 +0000 (UTC)
commit 557ca03d7305fcbc4b04973fc834c2516afdcb16
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Tue Mar 26 23:31:34 2019 +0100
dbusgen: Use strings and string-arrays like gdbus-codegen does
dbusgen/valadbusvariantmodule.vala | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
---
diff --git a/dbusgen/valadbusvariantmodule.vala b/dbusgen/valadbusvariantmodule.vala
index fdb57f7c2..42b08780a 100644
--- a/dbusgen/valadbusvariantmodule.vala
+++ b/dbusgen/valadbusvariantmodule.vala
@@ -56,6 +56,7 @@ public class Vala.DBusVariantModule {
public Struct gvalue_type;
public DataType vardict_type;
public DataType string_array_type;
+ public DataType object_path_array_type;
public DBusVariantModule (CodeContext context) {
@@ -107,6 +108,10 @@ public class Vala.DBusVariantModule {
vardict_type.add_type_argument (gvariant_type.copy ());
string_array_type = new ArrayType (string_type.copy (), 1, null);
+ string_array_type.value_owned = true;
+
+ object_path_array_type = new ArrayType (object_path_type.copy (), 1, null);
+ object_path_array_type.value_owned = true;
}
public DataType? get_dbus_type (string type) {
@@ -156,7 +161,15 @@ public class Vala.DBusVariantModule {
}
private DataType? get_complex_type (VariantType type) {
- if (type.is_array ()) {
+ if (type.equal (VariantType.OBJECT_PATH_ARRAY)) {
+ return object_path_array_type.copy ();
+ } else if (type.equal (VariantType.BYTESTRING)) {
+ return string_type.copy ();
+ } else if (type.equal (VariantType.BYTESTRING_ARRAY)) {
+ return string_array_type.copy ();
+ } else if (type.equal (VariantType.STRING_ARRAY)) {
+ return string_array_type.copy ();
+ } else if (type.is_array ()) {
var element = type.element ();
if (element.equal (VariantType.DICTIONARY) || element.is_dict_entry ()) {
var res = dictionary_type.copy ();
@@ -175,14 +188,6 @@ public class Vala.DBusVariantModule {
return array;
}
}
- } else if (type.equal (VariantType.BYTESTRING)) {
- return string_type.copy (); //new ArrayType (uchar_type.copy (), 1, null);
- } else if (type.equal (VariantType.BYTESTRING_ARRAY)) {
- return string_array_type.copy (); //new ArrayType (uchar_type.copy (), 2, null);
- } else if (type.equal (VariantType.STRING_ARRAY)) {
- return string_array_type.copy ();
- } else if (type.equal (VariantType.OBJECT_PATH_ARRAY)) {
- return string_array_type.copy ();
}
Report.warning (null, "Unresolved type: %s".printf ((string) type.peek_string ()));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]