diff options
Diffstat (limited to 'org')
-rw-r--r-- | org/freedesktop/dbus/DBusMap.java | 2 | ||||
-rw-r--r-- | org/freedesktop/dbus/Marshalling.java | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/org/freedesktop/dbus/DBusMap.java b/org/freedesktop/dbus/DBusMap.java index 2ac65f1..b9d06d7 100644 --- a/org/freedesktop/dbus/DBusMap.java +++ b/org/freedesktop/dbus/DBusMap.java @@ -20,7 +20,7 @@ import java.util.Vector; class DBusMap<K, V> implements Map<K, V> { - private Object[][] entries; + Object[][] entries; public DBusMap(Object[][] entries) { this.entries=entries; diff --git a/org/freedesktop/dbus/Marshalling.java b/org/freedesktop/dbus/Marshalling.java index 7f6797c..06c9a8c 100644 --- a/org/freedesktop/dbus/Marshalling.java +++ b/org/freedesktop/dbus/Marshalling.java @@ -518,6 +518,15 @@ public class Marshalling o.getClass()); } } + if (parameter instanceof DBusMap) { + if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserializing a Map"); + DBusMap dmap = (DBusMap) parameter; + Type[] maptypes = ((ParameterizedType) type).getActualTypeArguments(); + for (int i = 0; i < dmap.entries.length; i++) { + dmap.entries[i][0] = deSerializeParameter(dmap.entries[i][0], maptypes[0], conn); + dmap.entries[i][1] = deSerializeParameter(dmap.entries[i][1], maptypes[1], conn); + } + } return parameter; } static List<Object> deSerializeParameters(List<Object> parameters, Type type, AbstractConnection conn) throws Exception |