2004-10-27 Joe Shaw <joeshaw@novell.com>

* 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.
This commit is contained in:
Joe Shaw 2004-10-27 22:35:03 +00:00
parent 4612de0198
commit d8c8992b40
2 changed files with 15 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2004-10-27 Joe Shaw <joeshaw@novell.com>
* 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 <johnp@redhat.com>
* dbus/dbus-sysdeps.c (fill_user_info): On errors do not free

View file

@ -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 + "'");