summaryrefslogtreecommitdiff
path: root/org/freedesktop
diff options
context:
space:
mode:
authorMatthew Johnson <mjj29@hecate.trinhall.cam.ac.uk>2007-01-11 10:59:34 +0000
committerMatthew Johnson <mjj29@hecate.trinhall.cam.ac.uk>2007-01-11 10:59:34 +0000
commit154a51bc8f5eec7a0e19b0bdb5bc4d5c329d1432 (patch)
treea48cddf840766bdcf8318563aefd1d367b1aa197 /org/freedesktop
parente0de1f29ac286a3887e2953c2885742e1694f029 (diff)
fix cross-test-client
Diffstat (limited to 'org/freedesktop')
-rw-r--r--org/freedesktop/dbus/test/cross_test_client.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/org/freedesktop/dbus/test/cross_test_client.java b/org/freedesktop/dbus/test/cross_test_client.java
index d7da1f9..59c5c08 100644
--- a/org/freedesktop/dbus/test/cross_test_client.java
+++ b/org/freedesktop/dbus/test/cross_test_client.java
@@ -190,10 +190,14 @@ public class cross_test_client implements DBus.Binding.TestCallbacks, DBusSigHan
if (t instanceof ParameterizedType) {
Class c = (Class) ((ParameterizedType) t).getRawType();
if (List.class.isAssignableFrom(c)) {
- Object[] os = ((List) a).toArray();
+ Object os;
+ if (a instanceof List)
+ os = ((List) a).toArray();
+ else
+ os = a;
Type[] ts = ((ParameterizedType) t).getActualTypeArguments();
- for (int i = 0; i < os.length; i++)
- vs.addAll(PrimitizeRecurse(os[i], ts[0]));
+ for (int i = 0; i < Array.getLength(os); i++)
+ vs.addAll(PrimitizeRecurse(Array.get(os, i), ts[0]));
} else if (Map.class.isAssignableFrom(c)) {
Object[] os = ((Map) a).keySet().toArray();
Object[] ks = ((Map) a).values().toArray();
@@ -212,7 +216,12 @@ public class cross_test_client implements DBus.Binding.TestCallbacks, DBusSigHan
vs.addAll(PrimitizeRecurse(((Variant) a).getValue(), ((Variant) a).getType()));
}
} else if (Variant.class.isAssignableFrom((Class) t))
- vs.addAll(PrimitizeRecurse(((Variant) a).getValue(), ((Variant) a).getType()));
+ vs.addAll(PrimitizeRecurse(((Variant) a).getValue(), ((Variant) a).getType()));
+ else if (t instanceof Class && ((Class) t).isArray()) {
+ Type t2 = ((Class) t).getComponentType();
+ for (int i = 0; i < Array.getLength(a); i++)
+ vs.addAll(PrimitizeRecurse(Array.get(a, i), t2));
+ }
else vs.add(new Variant(a));
return vs;