2005-01-11 Joe Shaw <joeshaw@novell.com>

Patch from Tambet Ingo <tambet@ximian.com>

	* mono/DBusType/Array.cs (Get): Get the underlying element type by
	calling type.GetElementType().  The code previously depended on
	broken Mono behavior, which was fixed in Mono 1.1.3.

	* mono/DBusType/Dict.cs (constructor): Fix the parameters for
	Activator.CreateInstance() so that the class's constructor is
	called with the right parameters.
This commit is contained in:
Joe Shaw 2005-01-11 19:59:06 +00:00
parent ac4d2cb464
commit b3ba709079
3 changed files with 17 additions and 1 deletions

View file

@ -1,3 +1,15 @@
2005-01-11 Joe Shaw <joeshaw@novell.com>
Patch from Tambet Ingo <tambet@ximian.com>
* mono/DBusType/Array.cs (Get): Get the underlying element type by
calling type.GetElementType(). The code previously depended on
broken Mono behavior, which was fixed in Mono 1.1.3.
* mono/DBusType/Dict.cs (constructor): Fix the parameters for
Activator.CreateInstance() so that the class's constructor is
called with the right parameters.
2005-01-11 Joe Shaw <joeshaw@novell.com>
Patch from Timo Teräs <ext-timo.teras@nokia.com>

View file

@ -106,6 +106,9 @@ namespace DBus.DBusType
public object Get(System.Type type)
{
if (type.IsArray)
type = type.GetElementType ();
if (Arguments.Suits(elementType, type.UnderlyingSystemType)) {
this.val = System.Array.CreateInstance(type.UnderlyingSystemType, elements.Count);
int i = 0;

View file

@ -41,8 +41,9 @@ namespace DBus.DBusType
// Get the argument type and get the value
Type elementType = (Type) DBus.Arguments.DBusTypes[(char) dbus_message_iter_get_arg_type(dictIter)];
object [] pars = new Object[1];
object [] pars = new Object[2];
pars[0] = dictIter;
pars[1] = service;
DBusType.IDBusType dbusType = (DBusType.IDBusType) Activator.CreateInstance(elementType, pars);
this.val.Add(key, dbusType);
} while (dbus_message_iter_next(dictIter));