Cosmos/source2/IL2CPU/Cosmos.IL2CPU/MethodInfo.cs
mterwoord_cp c603c1cb0c
2014-07-08 13:46:00 +00:00

55 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace Cosmos.IL2CPU
{
public class MethodInfo
{
public enum TypeEnum { Normal, Plug, NeedsPlug };
public readonly MethodBase MethodBase;
public readonly TypeEnum Type;
public readonly UInt32 UID;
public readonly MethodInfo PlugMethod;
public readonly Type MethodAssembler;
public readonly bool IsInlineAssembler = false;
public readonly bool DebugStubOff;
public MethodInfo PluggedMethod;
public uint LocalVariablesSize;
public MethodInfo(MethodBase aMethodBase, UInt32 aUID, TypeEnum aType, MethodInfo aPlugMethod, Type aMethodAssembler) : this(aMethodBase, aUID, aType, aPlugMethod, false)
{
MethodAssembler = aMethodAssembler;
}
public MethodInfo(MethodBase aMethodBase, UInt32 aUID, TypeEnum aType, MethodInfo aPlugMethod)
: this(aMethodBase, aUID, aType, aPlugMethod, false)
{
//MethodBase = aMethodBase;
//UID = aUID;
//Type = aType;
//PlugMethod = aPlugMethod;
}
public MethodInfo(MethodBase aMethodBase, UInt32 aUID, TypeEnum aType, MethodInfo aPlugMethod, bool isInlineAssembler)
{
MethodBase = aMethodBase;
UID = aUID;
Type = aType;
PlugMethod = aPlugMethod;
IsInlineAssembler = isInlineAssembler;
Object[] attribs = this.MethodBase.GetCustomAttributes(typeof(Cosmos.IL2CPU.Plugs.DebugStubAttribute), false);
if (attribs.Length > 0)
{
Cosmos.IL2CPU.Plugs.DebugStubAttribute attrib = attribs[0] as Cosmos.IL2CPU.Plugs.DebugStubAttribute;
DebugStubOff = attrib.Off;
}
}
}
}