Cosmos/source/Indy.IL2CPU/ObjectUtilities.cs

23 lines
No EOL
596 B
C#

using System;
using System.Linq;
using Mono.Cecil;
namespace Indy.IL2CPU {
public static class ObjectUtilities {
public static uint GetObjectStorageSize(TypeDefinition aType) {
uint xResult = ObjectImpl.FieldDataOffset;
foreach (FieldDefinition xField in aType.Fields) {
if (xField.IsStatic) {
continue;
}
TypeDefinition xFieldType = Engine.GetDefinitionFromTypeReference(xField.FieldType);
if (xFieldType.IsClass) {
xResult += 4;
} else {
xResult += Engine.GetFieldStorageSize(xFieldType);
}
}
return xResult;
}
}
}