зеркало из https://github.com/mono/ikvm-fork.git
It turns out that "multi dimensional" vectors have "multi dimensional" constructors.
This commit is contained in:
Родитель
a03acfcfb9
Коммит
d8edcb3f95
|
@ -1682,12 +1682,18 @@ namespace IKVM.Reflection
|
|||
public override MethodBase[] __GetDeclaredMethods()
|
||||
{
|
||||
Type[] int32 = new Type[] { this.Module.universe.System_Int32 };
|
||||
return new MethodBase[] {
|
||||
new ConstructorInfoImpl(new BuiltinArrayMethod(this.Module, this, ".ctor", CallingConventions.Standard | CallingConventions.HasThis, this.Module.universe.System_Void, int32)),
|
||||
new BuiltinArrayMethod(this.Module, this, "Set", CallingConventions.Standard | CallingConventions.HasThis, this.Module.universe.System_Void, new Type[] { this.Module.universe.System_Int32, elementType }),
|
||||
new BuiltinArrayMethod(this.Module, this, "Address", CallingConventions.Standard | CallingConventions.HasThis, elementType.MakeByRefType(), int32),
|
||||
new BuiltinArrayMethod(this.Module, this, "Get", CallingConventions.Standard | CallingConventions.HasThis, elementType, int32),
|
||||
};
|
||||
List<MethodBase> list = new List<MethodBase>();
|
||||
list.Add(new BuiltinArrayMethod(this.Module, this, "Set", CallingConventions.Standard | CallingConventions.HasThis, this.Module.universe.System_Void, new Type[] { this.Module.universe.System_Int32, elementType }));
|
||||
list.Add(new BuiltinArrayMethod(this.Module, this, "Address", CallingConventions.Standard | CallingConventions.HasThis, elementType.MakeByRefType(), int32));
|
||||
list.Add(new BuiltinArrayMethod(this.Module, this, "Get", CallingConventions.Standard | CallingConventions.HasThis, elementType, int32));
|
||||
list.Add(new ConstructorInfoImpl(new BuiltinArrayMethod(this.Module, this, ".ctor", CallingConventions.Standard | CallingConventions.HasThis, this.Module.universe.System_Void, int32)));
|
||||
for (Type type = elementType; type.__IsVector; type = type.GetElementType())
|
||||
{
|
||||
Array.Resize(ref int32, int32.Length + 1);
|
||||
int32[int32.Length - 1] = int32[0];
|
||||
list.Add(new ConstructorInfoImpl(new BuiltinArrayMethod(this.Module, this, ".ctor", CallingConventions.Standard | CallingConventions.HasThis, this.Module.universe.System_Void, int32)));
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
|
||||
public override TypeAttributes Attributes
|
||||
|
|
Загрузка…
Ссылка в новой задаче