From d8c8992b407dd575e4f3d70bb6f7512334e660ca Mon Sep 17 00:00:00 2001 From: Joe Shaw Date: Wed, 27 Oct 2004 22:35:03 +0000 Subject: [PATCH] 2004-10-27 Joe Shaw * mono/Arguments.cs (GetDBusTypeConstructor): type.UnderlyingSystemType will return "System.Byte" if you do it on "byte[]", which is not what we want. So check the type.IsArray property and use System.Array instead. --- ChangeLog | 7 +++++++ mono/Arguments.cs | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c8f2349..8260ce2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-10-27 Joe Shaw + + * mono/Arguments.cs (GetDBusTypeConstructor): + type.UnderlyingSystemType will return "System.Byte" if you do it + on "byte[]", which is not what we want. So check the type.IsArray + property and use System.Array instead. + 2004-10-25 John (J5) Palmieri * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free diff --git a/mono/Arguments.cs b/mono/Arguments.cs index ca178ae..d78fbff 100644 --- a/mono/Arguments.cs +++ b/mono/Arguments.cs @@ -161,7 +161,14 @@ namespace DBus // Get the appropriate constructor for a D-BUS type public static ConstructorInfo GetDBusTypeConstructor(Type dbusType, Type type) { - ConstructorInfo constructor = dbusType.GetConstructor(new Type[] {type.UnderlyingSystemType, typeof(Service)}); + Type constructorType; + + if (type.IsArray) + constructorType = typeof (System.Array); + else + constructorType = type.UnderlyingSystemType; + + ConstructorInfo constructor = dbusType.GetConstructor(new Type[] {constructorType, typeof(Service)}); if (constructor == null) throw new ArgumentException("There is no valid constructor for '" + dbusType + "' from type '" + type + "'"); -- 2.7.4