Cosmos/source/Indy.IL2CPU/ObjectUtilities.cs
mterwoord_cp 0c6e92e5de
2008-02-10 15:27:44 +00:00

43 lines
No EOL
1 KiB
C#

using System;
using System.Linq;
using System.Reflection;
namespace Indy.IL2CPU {
public static class ObjectUtilities {
public static bool IsDelegate(Type aType) {
if (aType.FullName == "System.Object") {
return false;
}
if (aType.BaseType.FullName == "System.Delegate") {
return true;
}
if (aType.BaseType.FullName == "System.Object") {
return false;
}
return IsDelegate(aType.BaseType);
}
public static bool IsArray(Type aType) {
if (aType.FullName == "System.Object") {
return false;
}
if (aType.BaseType.FullName == "System.Array") {
return true;
}
if (aType.BaseType.FullName == "System.Object") {
return false;
}
return IsArray(aType.BaseType);
}
public static int GetObjectStorageSize(Type aType) {
if (aType == null) {
throw new ArgumentNullException("aType");
}
int xResult;
Engine.GetTypeFieldInfo(aType, out xResult);
xResult += ObjectImpl.FieldDataOffset;
return xResult;
}
}
}