浏览代码

所有代码放到Model和Cotroller程序集中,Model是游戏数据结构,在游戏开始前更新,Cotroller主要是游戏逻辑可以在运行时更新

tanghai 9 年之前
父节点
当前提交
ac7a5e8670
共有 100 个文件被更改,包括 0 次插入14535 次删除
  1. 0 9
      Unity/Assets/Plugins/CLRSharp.meta
  2. 0 9
      Unity/Assets/Plugins/CLRSharp/CLRSharp.meta
  3. 0 301
      Unity/Assets/Plugins/CLRSharp/CLRSharp/CLRSharp_Env.cs
  4. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/CLRSharp_Env.cs.meta
  5. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind.meta
  6. 0 136
      Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind/Yield.cs
  7. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind/Yield.cs.meta
  8. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute.meta
  9. 0 494
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/CodeBody.cs
  10. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/CodeBody.cs.meta
  11. 0 1256
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/Context.cs
  12. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/Context.cs.meta
  13. 0 3219
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/StackFrame.cs
  14. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/StackFrame.cs.meta
  15. 0 1636
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/ValueOnStack.cs
  16. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/ValueOnStack.cs.meta
  17. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface.meta
  18. 0 50
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface/EnvAndLog.cs
  19. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface/EnvAndLog.cs.meta
  20. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type.meta
  21. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp.meta
  22. 0 39
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Instance.cs
  23. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Instance.cs.meta
  24. 0 630
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Type.cs
  25. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Type.cs.meta
  26. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate.meta
  27. 0 249
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate/Delegate_Helper.cs
  28. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate/Delegate_Helper.cs.meta
  29. 0 5
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System.meta
  30. 0 522
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System/System_Type.cs
  31. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System/System_Type.cs.meta
  32. 0 149
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_Common.cs
  33. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_Common.cs.meta
  34. 0 202
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_List.cs
  35. 0 8
      Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_List.cs.meta
  36. 0 9
      Unity/Assets/Plugins/Mono.Cecil.20.meta
  37. 0 9
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil.meta
  38. 0 9
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil.meta
  39. 0 252
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Code.cs
  40. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Code.cs.meta
  41. 0 394
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeReader.cs
  42. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeReader.cs.meta
  43. 0 38
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeWriter.cs
  44. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeWriter.cs.meta
  45. 0 112
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Document.cs
  46. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Document.cs.meta
  47. 0 89
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ExceptionHandler.cs
  48. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ExceptionHandler.cs.meta
  49. 0 278
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ILProcessor.cs
  50. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ILProcessor.cs.meta
  51. 0 321
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Instruction.cs
  52. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Instruction.cs.meta
  53. 0 267
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/MethodBody.cs
  54. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/MethodBody.cs.meta
  55. 0 455
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCode.cs
  56. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCode.cs.meta
  57. 0 912
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCodes.cs
  58. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCodes.cs.meta
  59. 0 70
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/SequencePoint.cs
  60. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/SequencePoint.cs.meta
  61. 0 243
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Symbols.cs
  62. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Symbols.cs.meta
  63. 0 52
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableDefinition.cs
  64. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableDefinition.cs.meta
  65. 0 75
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableReference.cs
  66. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableReference.cs.meta
  67. 0 9
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata.meta
  68. 0 61
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/BlobHeap.cs
  69. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/BlobHeap.cs.meta
  70. 0 36
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Buffers.cs
  71. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Buffers.cs.meta
  72. 0 46
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/CodedIndex.cs
  73. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/CodedIndex.cs.meta
  74. 0 73
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/ElementType.cs
  75. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/ElementType.cs.meta
  76. 0 59
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/GuidHeap.cs
  77. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/GuidHeap.cs.meta
  78. 0 48
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Heap.cs
  79. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Heap.cs.meta
  80. 0 105
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/MetadataToken.cs
  81. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/MetadataToken.cs.meta
  82. 0 175
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Row.cs
  83. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Row.cs.meta
  84. 0 81
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/StringHeap.cs
  85. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/StringHeap.cs.meta
  86. 0 111
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TableHeap.cs
  87. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TableHeap.cs.meta
  88. 0 56
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TokenType.cs
  89. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TokenType.cs.meta
  90. 0 61
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/UserStringHeap.cs
  91. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/UserStringHeap.cs.meta
  92. 0 354
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Utilities.cs
  93. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Utilities.cs.meta
  94. 0 9
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE.meta
  95. 0 51
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamReader.cs
  96. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamReader.cs.meta
  97. 0 31
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamWriter.cs
  98. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamWriter.cs.meta
  99. 0 184
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/ByteBuffer.cs
  100. 0 12
      Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/ByteBuffer.cs.meta

+ 0 - 9
Unity/Assets/Plugins/CLRSharp.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 16029f96e8f84644bac80f48e815cc31
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/CLRSharp/CLRSharp.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 9a80101e9c7555844b56435cc88caa35
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 301
Unity/Assets/Plugins/CLRSharp/CLRSharp/CLRSharp_Env.cs

@@ -1,301 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-
-    public class CLRSharp_Environment : ICLRSharp_Environment
-    {
-        public string version
-        {
-            get
-            {
-                return "0.50.1Beta";
-            }
-        }
-        public ICLRSharp_Logger logger
-        {
-            get;
-            private set;
-        }
-        public CLRSharp_Environment(ICLRSharp_Logger logger)
-        {
-            this.logger = logger;
-            logger.Log_Warning("CLR# Ver:" + version + " Inited.");
-
-            this.RegCrossBind(new CrossBind_IEnumerable());
-            this.RegCrossBind(new CrossBind_IEnumerator());
-            this.RegCrossBind(new CrossBind_IDisposable());
-       }
-        Dictionary<string, ICLRType> mapType = new Dictionary<string, ICLRType>();
-        //public Dictionary<string, Mono.Cecil.ModuleDefinition> mapModule = new Dictionary<string, Mono.Cecil.ModuleDefinition>();
-        public void LoadModule(System.IO.Stream dllStream)
-        {
-            LoadModule(dllStream, null, null);
-        }
-        public void LoadModule(System.IO.Stream dllStream, System.IO.Stream pdbStream, Mono.Cecil.Cil.ISymbolReaderProvider debugInfoLoader)
-        {
-            var module = Mono.Cecil.ModuleDefinition.ReadModule(dllStream);
-            if (debugInfoLoader != null && pdbStream != null)
-            {
-                module.ReadSymbols(debugInfoLoader.GetSymbolReader(module, pdbStream));
-            }
-            if (module.HasAssemblyReferences)
-            {
-                foreach (var ar in module.AssemblyReferences)
-                {
-                    if (moduleref.Contains(ar.Name) == false)
-                        moduleref.Add(ar.Name);
-                    if (moduleref.Contains(ar.FullName) == false)
-                        moduleref.Add(ar.FullName);
-                }
-            }
-            //mapModule[module.Name] = module;
-            if (module.HasTypes)
-            {
-                foreach (var t in module.Types)
-                {
-
-                    mapType[t.FullName] = new Type_Common_CLRSharp(this, t);
-
-                }
-            }
-
-        }
-        public List<System.Reflection.Assembly> assemblylist;
-        public void AddSerachAssembly(System.Reflection.Assembly assembly)
-        {
-            if (assemblylist == null)
-                assemblylist = new List<System.Reflection.Assembly>();
-            assemblylist.Add(assembly);
-        }
-        public void LoadModule_OnlyName(System.IO.Stream dllStream)
-        {
-            var module = Mono.Cecil.ModuleDefinition.ReadModule(dllStream);
-            if (moduleref.Contains(module.Name) == false)
-                moduleref.Add(module.Name);
-            if (module.HasAssemblyReferences)
-            {
-                foreach (var ar in module.AssemblyReferences)
-                {
-                    if (moduleref.Contains(ar.Name) == false)
-                        moduleref.Add(ar.Name);
-                }
-            }
-        }
-
-        List<string> moduleref = new List<string>();
-        public string[] GetAllTypes()
-        {
-            string[] array = new string[mapType.Count];
-            mapType.Keys.CopyTo(array, 0);
-            return array;
-        }
-        public string[] GetModuleRefNames()
-        {
-            return moduleref.ToArray();
-        }
-        //得到类型的时候应该得到模块内Type或者真实Type
-        //一个统一的Type,然后根据具体情况调用两边
-
-        public ICLRType GetType(string fullname)
-        {
-            try
-            {
-                ICLRType type = null;
-                bool b = mapType.TryGetValue(fullname, out type);
-                if (!b)
-                {
-                    List<ICLRType> subTypes = new List<ICLRType>();
-                    if (fullname.Contains("<>") || fullname.Contains("/"))//匿名类型
-                    {
-                        string[] subts = fullname.Split('/');
-                        ICLRType ft = GetType(subts[0]);
-                        if (ft is ICLRType_Sharp)
-                        {
-                            for (int i = 1; i < subts.Length; i++)
-                            {
-                                ft = ft.GetNestType(this, subts[i]);
-                            }
-                            return ft;
-                        }
-                    }
-                    string fullnameT = fullname;//.Replace('/', '+');
-
-                    if (fullnameT.Contains("<"))
-                    {
-                        string outname = "";
-                        int depth = 0;
-                        int lastsplitpos = 0;
-                        for (int i = 0; i < fullname.Length; i++)
-                        {
-                            string checkname = null;
-                            if (fullname[i] == '/')
-                            {
-
-                            }
-                            else if (fullname[i] == '<')
-                            {
-                                if (i != 0)
-                                    depth++;
-                                if (depth == 1)//
-                                {
-                                    lastsplitpos = i;
-                                    outname += "[";
-                                    continue;
-                                }
-
-                            }
-                            else if (fullname[i] == '>')
-                            {
-                                if (depth == 1)
-                                {
-                                    checkname = fullnameT.Substring(lastsplitpos + 1, i - lastsplitpos - 1);
-                                    var subtype = GetType(checkname);
-                                    subTypes.Add(subtype);
-                                    if (!subtype.IsEnum() && subtype is ICLRType_Sharp)
-                                    {
-                                        subtype = GetType(typeof(CLRSharp_Instance));
-                                    }
-                                    outname += "[" + subtype.FullNameWithAssembly + "]";
-                                    lastsplitpos = i;
-                                }
-                                //if(depth>0)
-                                depth--;
-                                if (depth == 0)
-                                {
-                                    outname += "]";
-                                    continue;
-                                }
-                                else if (depth < 0)
-                                {
-                                    depth = 0;
-                                }
-                            }
-                            else if (fullname[i] == ',')
-                            {
-                                if (depth == 1)
-                                {
-                                    checkname = fullnameT.Substring(lastsplitpos + 1, i - lastsplitpos - 1);
-                                    var subtype = GetType(checkname);
-                                    subTypes.Add(subtype);
-
-                                    if (!subtype.IsEnum() && subtype is ICLRType_Sharp)
-                                    {
-
-                                        subtype = GetType(typeof(CLRSharp_Instance));
-                                    }
-
-                                    outname += "[" + subtype.FullNameWithAssembly + "],";
-                                    lastsplitpos = i;
-                                }
-                            }
-                            if (depth == 0)
-                            {
-                                outname += fullnameT[i];
-                            }
-                        }
-                        fullnameT = outname;
-                        //    fullnameT = fullnameT.Replace('<', '[');
-                        //fullnameT = fullnameT.Replace('>', ']');
-
-
-                    }
-                    fullnameT = fullnameT.Replace('/', '+');
-                    System.Type t = System.Type.GetType(fullnameT);
-
-                    if (t == null)
-                    {
-                        if (assemblylist != null)
-                        {
-                            foreach (var i in assemblylist)
-                            {
-                                t = i.GetType(fullnameT);
-                                if (t != null)
-                                    break;
-                            }
-                        }
-                        if (t == null)
-                        {
-                            foreach (var rm in moduleref)
-                            {
-                                t = System.Type.GetType(fullnameT + "," + rm);
-                                if (t != null)
-                                {
-                                    fullnameT = fullnameT + "," + rm;
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    if (t != null)
-                    {
-                        //之所以做这么扭曲的设计,是因为Unity的Type.Fullname 实现错误,导致在Unity环境Type.FullName不一致
-                        if (t.FullName.Contains("CLRSharp.CLRSharp_Instance") == false)
-                        {
-                            b = mapType.TryGetValue(t.FullName, out type);
-                            if (b)
-                            {
-                                //mapType[fullname] = type;
-                                return type;
-                            }
-                            type = new Type_Common_System(this, t, subTypes.ToArray());
-                            mapType[t.FullName] = type;
-                            return type;
-                        }
-                        else
-                        {
-
-                        }
-                        type = new Type_Common_System(this, t, subTypes.ToArray());
-                        mapType[fullname] = type;
-                        //mapType[t.FullName] = type;
-                    }
-
-                }
-                return type;
-            }
-            catch (Exception err)
-            {
-                throw new Exception("Error in getType:" + fullname, err);
-            }
-        }
-
-
-        public ICLRType GetType(System.Type systemType)
-        {
-            ICLRType type = null;
-            bool b = mapType.TryGetValue(systemType.FullName, out type);
-            if (!b)
-            {
-                type = new Type_Common_System(this, systemType, null);
-                mapType[systemType.FullName] = type;
-            }
-            return type;
-        }
-        public void RegType(ICLRType type)
-        {
-            mapType[type.FullName] = type;
-        }
-
-        /// <summary>
-        /// 交叉绑定工具,让脚本继承程序类型用的
-        /// </summary>
-        Dictionary<Type, ICrossBind> crossBind = new Dictionary<Type, ICrossBind>();
-        public void RegCrossBind(ICrossBind bind)
-        {
-            crossBind[bind.Type] = bind;
-        }
-
-        public ICrossBind GetCrossBind(Type type)
-        {
-            ICrossBind bind = null;
-
-            crossBind.TryGetValue(type, out bind);
-            return bind;
-        }
-
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/CLRSharp_Env.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 8ccc354edaf0ba741be8ccabea8f28b9
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: d37db62475788664f90cb1e611fd8cb2
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 136
Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind/Yield.cs

@@ -1,136 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public class CrossBind_IDisposable : ICrossBind
-    {
-        public Type Type
-        {
-            get { return typeof(IDisposable); }
-
-        }
-        public object CreateBind(CLRSharp_Instance inst)
-        {
-            return new Base_IDisposable(inst);
-        }
-
-        class Base_IDisposable : IDisposable
-        {
-            CLRSharp_Instance inst;
-            public Base_IDisposable(CLRSharp_Instance inst)
-            {
-                this.inst = inst;
-
-            }
-
-            public void Dispose()
-            {
-                var context = ThreadContext.activeContext;
-                var _type = context.environment.GetType(typeof(IDisposable));
-                var _method = this.inst.type.GetMethod(_type.FullName + "." + "Dispose", MethodParamList.constEmpty());
-                object obj = _method.Invoke(context, inst, null);
-
-            }
-        }
-    }
-    public class CrossBind_IEnumerable : ICrossBind
-    {
-        public Type Type
-        {
-            get { return typeof(IEnumerable); }
-
-        }
-        public object CreateBind(CLRSharp_Instance inst)
-        {
-            return new Base_IEnumerable(inst);
-        }
-
-        class Base_IEnumerable : IEnumerable
-        {
-            CLRSharp_Instance inst;
-            public Base_IEnumerable(CLRSharp_Instance inst)
-            {
-                this.inst = inst;
-
-            }
-
-            public IEnumerator GetEnumerator()
-            {
-                var context = ThreadContext.activeContext;
-                var _type = context.environment.GetType(typeof(IEnumerable));
-                var _method = this.inst.type.GetMethod(_type.FullName+"."+"GetEnumerator", MethodParamList.constEmpty());
-                object obj = _method.Invoke(context, inst, null);
-                return obj as IEnumerator;
-            }
-        }
-    }
-    public class CrossBind_IEnumerator : ICrossBind
-    {
-        public Type Type
-        {
-            get { return typeof(IEnumerator); }
-        }
-
-        public object CreateBind(CLRSharp_Instance inst)
-        {
-            return new Base_IEnumerator(inst);
-        }
-
-        class Base_IEnumerator : IEnumerator
-        {
-            CLRSharp_Instance inst;
-            public Base_IEnumerator(CLRSharp_Instance inst)
-            { 
-                var context = ThreadContext.activeContext;
-                this.inst = inst;
-                var ms = this.inst.type.GetMethodNames();
-                foreach(string name in ms)
-                {
-                    if(name.Contains("MoveNext"))
-                        _MoveNext = this.inst.type.GetMethod(name, MethodParamList.constEmpty());
-                    if (name.Contains(".get_Current"))
-                        _get_Current = this.inst.type.GetMethod(name, MethodParamList.constEmpty());
-                    if (name.Contains(".Reset"))
-                        _Reset = this.inst.type.GetMethod(name, MethodParamList.constEmpty());
-                }
-            }
-            IMethod _MoveNext;
-            IMethod _get_Current;
-            IMethod _Reset;
-
-
-            public object Current
-            {
-                get
-                {
-                    var context = ThreadContext.activeContext;
-                    var obj = _get_Current.Invoke(context, inst, null);
-
-                    return obj;
-                }
-            }
-
-            public bool MoveNext()
-            {
-                var context = ThreadContext.activeContext;
-                var obj = _MoveNext.Invoke(context, inst, null) as VBox;
-
-                return obj.ToBool();
-            }
-
-            public void Reset()
-            {
-                var context = ThreadContext.activeContext;
-
-                var obj = _Reset.Invoke(context, inst, null);
-
-            }
-        }
-    }
-
-}
-
-

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/CrossBind/Yield.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 5ffc4ee9ef8edac438f8f1a4fac47a41
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: 04af843a480fd934dbe8166135358b22
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 494
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/CodeBody.cs

@@ -1,494 +0,0 @@
-using Mono.Cecil.Cil;
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public enum CodeEx
-    {
-        Nop,
-        Break,
-        Ldarg_0,
-        Ldarg_1,
-        Ldarg_2,
-        Ldarg_3,
-        Ldloc_0,
-        Ldloc_1,
-        Ldloc_2,
-        Ldloc_3,
-        Stloc_0,
-        Stloc_1,
-        Stloc_2,
-        Stloc_3,
-        Ldarg_S,
-        Ldarga_S,
-        Starg_S,
-        Ldloc_S,
-        Ldloca_S,
-        Stloc_S,
-        Ldnull,
-        Ldc_I4_M1,
-        Ldc_I4_0,
-        Ldc_I4_1,
-        Ldc_I4_2,
-        Ldc_I4_3,
-        Ldc_I4_4,
-        Ldc_I4_5,
-        Ldc_I4_6,
-        Ldc_I4_7,
-        Ldc_I4_8,
-        Ldc_I4_S,
-        Ldc_I4,
-        Ldc_I8,
-        Ldc_R4,
-        Ldc_R8,
-        Dup,
-        Pop,
-        Jmp,
-        Call,
-        Calli,
-        Ret,
-        Br_S,
-        Brfalse_S,
-        Brtrue_S,
-        Beq_S,
-        Bge_S,
-        Bgt_S,
-        Ble_S,
-        Blt_S,
-        Bne_Un_S,
-        Bge_Un_S,
-        Bgt_Un_S,
-        Ble_Un_S,
-        Blt_Un_S,
-        Br,
-        Brfalse,
-        Brtrue,
-        Beq,
-        Bge,
-        Bgt,
-        Ble,
-        Blt,
-        Bne_Un,
-        Bge_Un,
-        Bgt_Un,
-        Ble_Un,
-        Blt_Un,
-        Switch,
-        Ldind_I1,
-        Ldind_U1,
-        Ldind_I2,
-        Ldind_U2,
-        Ldind_I4,
-        Ldind_U4,
-        Ldind_I8,
-        Ldind_I,
-        Ldind_R4,
-        Ldind_R8,
-        Ldind_Ref,
-        Stind_Ref,
-        Stind_I1,
-        Stind_I2,
-        Stind_I4,
-        Stind_I8,
-        Stind_R4,
-        Stind_R8,
-        Add,
-        Sub,
-        Mul,
-        Div,
-        Div_Un,
-        Rem,
-        Rem_Un,
-        And,
-        Or,
-        Xor,
-        Shl,
-        Shr,
-        Shr_Un,
-        Neg,
-        Not,
-        Conv_I1,
-        Conv_I2,
-        Conv_I4,
-        Conv_I8,
-        Conv_R4,
-        Conv_R8,
-        Conv_U4,
-        Conv_U8,
-        Callvirt,
-        Cpobj,
-        Ldobj,
-        Ldstr,
-        Newobj,
-        Castclass,
-        Isinst,
-        Conv_R_Un,
-        Unbox,
-        Throw,
-        Ldfld,
-        Ldflda,
-        Stfld,
-        Ldsfld,
-        Ldsflda,
-        Stsfld,
-        Stobj,
-        Conv_Ovf_I1_Un,
-        Conv_Ovf_I2_Un,
-        Conv_Ovf_I4_Un,
-        Conv_Ovf_I8_Un,
-        Conv_Ovf_U1_Un,
-        Conv_Ovf_U2_Un,
-        Conv_Ovf_U4_Un,
-        Conv_Ovf_U8_Un,
-        Conv_Ovf_I_Un,
-        Conv_Ovf_U_Un,
-        Box,
-        Newarr,
-        Ldlen,
-        Ldelema,
-        Ldelem_I1,
-        Ldelem_U1,
-        Ldelem_I2,
-        Ldelem_U2,
-        Ldelem_I4,
-        Ldelem_U4,
-        Ldelem_I8,
-        Ldelem_I,
-        Ldelem_R4,
-        Ldelem_R8,
-        Ldelem_Ref,
-        Stelem_I,
-        Stelem_I1,
-        Stelem_I2,
-        Stelem_I4,
-        Stelem_I8,
-        Stelem_R4,
-        Stelem_R8,
-        Stelem_Ref,
-        Ldelem_Any,
-        Stelem_Any,
-        Unbox_Any,
-        Conv_Ovf_I1,
-        Conv_Ovf_U1,
-        Conv_Ovf_I2,
-        Conv_Ovf_U2,
-        Conv_Ovf_I4,
-        Conv_Ovf_U4,
-        Conv_Ovf_I8,
-        Conv_Ovf_U8,
-        Refanyval,
-        Ckfinite,
-        Mkrefany,
-        Ldtoken,
-        Conv_U2,
-        Conv_U1,
-        Conv_I,
-        Conv_Ovf_I,
-        Conv_Ovf_U,
-        Add_Ovf,
-        Add_Ovf_Un,
-        Mul_Ovf,
-        Mul_Ovf_Un,
-        Sub_Ovf,
-        Sub_Ovf_Un,
-        Endfinally,
-        Leave,
-        Leave_S,
-        Stind_I,
-        Conv_U,
-        Arglist,
-        Ceq,
-        Cgt,
-        Cgt_Un,
-        Clt,
-        Clt_Un,
-        Ldftn,
-        Ldvirtftn,
-        Ldarg,
-        Ldarga,
-        Starg,
-        Ldloc,
-        Ldloca,
-        Stloc,
-        Localloc,
-        Endfilter,
-        Unaligned,
-        Volatile,
-        Tail,
-        Initobj,
-        Constrained,
-        Cpblk,
-        Initblk,
-        No,
-        Rethrow,
-        Sizeof,
-        Refanytype,
-        Readonly,
-    }
-
-
-    public class CodeBody
-    {
-        //以后准备用自定义Body采集一遍,可以先过滤处理掉Mono.Cecil的代码中的指向,执行会更快
-        public CodeBody(CLRSharp.ICLRSharp_Environment env, Mono.Cecil.MethodDefinition _def)
-        {
-            this.method = _def;
-            Init(env);
-        }
-        public MethodParamList typelistForLoc = null;
-        Mono.Cecil.MethodDefinition method;
-        public Mono.Cecil.Cil.MethodBody bodyNative
-        {
-            get
-            {
-                return method.Body;
-            }
-        }
-        bool bInited = false;
-        public void Init(CLRSharp.ICLRSharp_Environment env)
-        {
-            if (bInited) return;
-            if (bodyNative.HasVariables)
-            {
-                typelistForLoc = new MethodParamList(env, bodyNative.Variables);
-            }
-            for (int i = 0; i < bodyNative.Instructions.Count; i++)
-            {
-                var code = bodyNative.Instructions[i];
-                OpCode c = new OpCode();
-                c.code = (CodeEx)(int)code.OpCode.Code;
-                c.addr = code.Offset;
-                if (code.SequencePoint != null)
-                {
-                    if (debugDoc == null)
-                        debugDoc = new Dictionary<string, int>();
-                    if (debugDoc.ContainsKey(code.SequencePoint.Document.Url) == false)
-                    {
-                        debugDoc.Add(code.SequencePoint.Document.Url, code.SequencePoint.StartLine);
-                    }
-                    c.debugline = code.SequencePoint.StartLine;
-
-                }
-
-                this.opCodes.Add(c);
-                addr[c.addr] = i; ;
-            }
-            var context = ThreadContext.activeContext;
-            for (int i = 0; i < bodyNative.Instructions.Count; i++)
-            {
-                OpCode c = opCodes[i];
-                var code = bodyNative.Instructions[i];
-                c.InitToken(context, this, code.Operand);
-            }
-            bInited = true;
-        }
-        public class OpCode
-        {
-            public override string ToString()
-            {
-                return "IL_" + addr.ToString("X04") + " " + code;
-            }
-            public int addr;
-            public CodeEx code;
-            public int debugline = -1;
-
-            public object tokenUnknown;
-            public int tokenAddr_Index;
-            //public int tokenAddr;
-            public int[] tokenAddr_Switch;
-            public ICLRType tokenType;
-            public IField tokenField;
-            public IMethod tokenMethod;
-            public int tokenI32;
-            public Int64 tokenI64;
-            public float tokenR32;
-            public double tokenR64;
-            public string tokenStr;
-            public void InitToken(ThreadContext context, CodeBody body, object _p)
-            {
-                switch (code)
-                {
-                    case CodeEx.Leave:
-                    case CodeEx.Leave_S:
-                    case CodeEx.Br:
-                    case CodeEx.Br_S:
-                    case CodeEx.Brtrue:
-                    case CodeEx.Brtrue_S:
-                    case CodeEx.Brfalse:
-                    case CodeEx.Brfalse_S:
-                    //比较流程控制
-                    case CodeEx.Beq:
-                    case CodeEx.Beq_S:
-                    case CodeEx.Bne_Un:
-                    case CodeEx.Bne_Un_S:
-                    case CodeEx.Bge:
-                    case CodeEx.Bge_S:
-                    case CodeEx.Bge_Un:
-                    case CodeEx.Bge_Un_S:
-                    case CodeEx.Bgt:
-                    case CodeEx.Bgt_S:
-                    case CodeEx.Bgt_Un:
-                    case CodeEx.Bgt_Un_S:
-                    case CodeEx.Ble:
-                    case CodeEx.Ble_S:
-                    case CodeEx.Ble_Un:
-                    case CodeEx.Ble_Un_S:
-                    case CodeEx.Blt:
-                    case CodeEx.Blt_S:
-                    case CodeEx.Blt_Un:
-                    case CodeEx.Blt_Un_S:
-                        //this.tokenAddr = ((Mono.Cecil.Cil.Instruction)_p).Offset;
-                        this.tokenAddr_Index = body.addr[((Mono.Cecil.Cil.Instruction)_p).Offset];
-                        break;
-                    case CodeEx.Isinst:
-                    case CodeEx.Constrained:
-                    case CodeEx.Box:
-                    case CodeEx.Initobj:
-                    case CodeEx.Castclass:
-                    case CodeEx.Newarr:
-                        this.tokenType = context.GetType(_p);
-                        //this.tokenUnknown = _p;
-                        break;
-                    case CodeEx.Ldfld:
-                    case CodeEx.Ldflda:
-                    case CodeEx.Ldsfld:
-                    case CodeEx.Ldsflda:
-                    case CodeEx.Stfld:
-                    case CodeEx.Stsfld:
-                        this.tokenField = context.GetField(_p);
-                        //this.tokenUnknown = _p;
-                        break;
-                    case CodeEx.Call:
-                    case CodeEx.Callvirt:
-                    case CodeEx.Newobj:
-                    case CodeEx.Ldftn:
-                    case CodeEx.Ldvirtftn:
-
-                            this.tokenMethod = context.GetMethod(_p);
- 
-                        break;
-                    case CodeEx.Ldc_I4:
-                        this.tokenI32 = (int)_p;
-                        break;
-                    case CodeEx.Ldc_I4_S:
-                        this.tokenI32 = (int)Convert.ToDecimal(_p);
-                        break;
-                    case CodeEx.Ldc_I4_M1:
-                        this.tokenI32 = -1;
-                        break;
-                    case CodeEx.Ldc_I4_0:
-                        this.tokenI32 = 0;
-                        break;
-                    case CodeEx.Ldc_I4_1:
-                        this.tokenI32 = 1;
-                        break;
-                    case CodeEx.Ldc_I4_2:
-                        this.tokenI32 = 2;
-                        break;
-                    case CodeEx.Ldc_I4_3:
-                        this.tokenI32 = 3;
-                        break;
-                    case CodeEx.Ldc_I4_4:
-                        this.tokenI32 = 4;
-                        break;
-                    case CodeEx.Ldc_I4_5:
-                        this.tokenI32 = 5;
-                        break;
-                    case CodeEx.Ldc_I4_6:
-                        this.tokenI32 = 6;
-                        break;
-                    case CodeEx.Ldc_I4_7:
-                        this.tokenI32 = 7;
-                        break;
-                    case CodeEx.Ldc_I4_8:
-                        this.tokenI32 = 8;
-                        break;
-                    case CodeEx.Ldc_I8:
-                        this.tokenI64 = (Int64)_p;
-                        break;
-                    case CodeEx.Ldc_R4:
-                        this.tokenR32 = (float)_p;
-                        break;
-                    case CodeEx.Ldc_R8:
-                        this.tokenR64 = (double)_p;
-                        break;
-
-                    case CodeEx.Ldstr:
-                        this.tokenStr = _p as string;
-                        break;
-
-                    case CodeEx.Ldloca:
-                    case CodeEx.Ldloca_S:
-                    case CodeEx.Ldloc_S:
-                    case CodeEx.Stloc_S:
-                        this.tokenI32 = ((VariableDefinition)_p).Index;
-                        //this.tokenUnknown = _p;
-                        break;
-                    case CodeEx.Ldloc:
-                    case CodeEx.Stloc:
-                        this.tokenI32 = (int)_p;
-                        break;
-                    case CodeEx.Ldloc_0:
-                        this.tokenI32 = 0;
-                        break;
-                    case CodeEx.Ldloc_1:
-                        this.tokenI32 = 1;
-                        break;
-                    case CodeEx.Ldloc_2:
-                        this.tokenI32 = 2;
-                        break;
-                    case CodeEx.Ldloc_3:
-                        this.tokenI32 = 3;
-                        break;
-
-                    case CodeEx.Ldarga:
-                    case CodeEx.Ldarga_S:
-                    case CodeEx.Starg:
-                    case CodeEx.Starg_S:
-                        this.tokenI32 = (_p as Mono.Cecil.ParameterDefinition).Index;
-                        break;
-                    case CodeEx.Switch:
-                        {
-                            Mono.Cecil.Cil.Instruction[] e = _p as Mono.Cecil.Cil.Instruction[];
-                            tokenAddr_Switch = new int[e.Length];
-                            for (int i = 0; i < e.Length; i++)
-                            {
-                                tokenAddr_Switch[i] = body.addr[(e[i].Offset)];
-                            }
-
-                        }
-                        break;
-                    case CodeEx.Ldarg:
-                        this.tokenI32 = (int)_p;
-                        break;
-                    case CodeEx.Ldarg_S:
-                        this.tokenI32 = (_p as Mono.Cecil.ParameterReference).Index;
-                        break;
-                    case CodeEx.Volatile:
-                    case CodeEx.  Ldind_I1:
-                    case CodeEx.  Ldind_U1:
-                    case CodeEx.   Ldind_I2:
-                    case CodeEx.  Ldind_U2:
-                    case CodeEx.  Ldind_I4:
-                    case CodeEx.  Ldind_U4:
-                    case CodeEx.  Ldind_I8:
-                    case CodeEx.   Ldind_I:
-                    case CodeEx.  Ldind_R4:
-                    case CodeEx.  Ldind_R8:
-                    case CodeEx.  Ldind_Ref:
-                        break;
-                    default:
-                        this.tokenUnknown = _p;
-                        break;
-                }
-            }
-        }
-        public Dictionary<string, int> debugDoc = new Dictionary<string, int>();
-        public List<OpCode> opCodes = new List<OpCode>();
-        public Dictionary<int, int> addr = new Dictionary<int, int>();
-        public string doc;
-
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/CodeBody.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e0f95d2a1c9a9af47969f5c0df59af53
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 1256
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/Context.cs

@@ -1,1256 +0,0 @@
-using Mono.Cecil.Cil;
-using System;
-using System.Collections.Generic;
-
-
-namespace CLRSharp
-{
-    /// <summary>
-    /// 线程上下文
-    /// 一个线程上下文表示一次调用,直到结束
-    /// </summary>
-    public class ThreadContext
-    {
-        [ThreadStatic]
-        static ThreadContext _activeContext = null;
-        public static ThreadContext activeContext
-        {
-            get
-            {
-                return _activeContext;
-            }
-        }
-        public ICLRSharp_Environment environment
-        {
-            get;
-            private set;
-        }
-        public int DebugLevel
-        {
-            get;
-            private set;
-        }
-        public ThreadContext(ICLRSharp_Environment env)
-        {
-            this.environment = env;
-            DebugLevel = 0;
-            if (_activeContext != null)
-            {
-                env.logger.Log_Error("在同一线程上多次创建ThreadContext");
-            }
-            _activeContext = this;
-
-        }
-        public ThreadContext(ICLRSharp_Environment env, int DebugLevel)
-        {
-            this.environment = env;
-            this.DebugLevel = DebugLevel;
-            if (_activeContext != null)
-            {
-                env.logger.Log_Error("在同一线程上多次创建ThreadContext");
-            }
-            _activeContext = this;
-
-        }
-        public Stack<StackFrame> GetStackFrames()
-        {
-            return stacks;
-        }
-        Stack<StackFrame> stacks = new Stack<StackFrame>();
-        public bool SetNoTry = false;
-        public string Dump()
-        {
-            string str = "";
-            foreach (StackFrame s in GetStackFrames())
-            {
-                var pos = s.GetCode();
-                Instruction sqIns = pos;
-                while (sqIns != null && sqIns.SequencePoint == null)
-                {
-                    sqIns = sqIns.Previous;
-                }
-                if (sqIns != null && sqIns.SequencePoint != null)
-                {
-                    str += sqIns.SequencePoint.Document.Url + "(" + sqIns.SequencePoint.StartLine + ")\n";
-                }
-                else
-                {
-                    str += "!no pdb info,no code filename(no line)!\n";
-                }
-                if (pos == null)
-                {
-                    continue;
-                }
-                str += "    IL " + pos.ToString() + "\n";
-                if (s._params != null)
-                {
-                    str += "    ===Params(" + s._params.Length + ")===\n";
-                    for (int i = 0; i < s._params.Length; i++)
-                    {
-                        str += "        param" + i.ToString("D04") + s._params[i] + "\n";
-                    }
-                }
-                str += "    ===VarSlots(" + s.slotVar.Count + ")===\n";
-                for (int i = 0; i < s.slotVar.Count; i++)
-                {
-                    str += "        var" + i.ToString("D04") + s.slotVar[i] + "\n";
-                }
-            }
-            return str;
-        }
-        public object ExecuteFunc(IMethod_Sharp method, object _this, object[] _params)
-        {
-            if (this.DebugLevel >= 9)
-            {
-                environment.logger.Log("<Call>::" + method.DeclaringType.FullName + "::" + method.Name.ToString());
-
-            }
-            StackFrame stack = new StackFrame(method.Name, method.isStatic);
-            stacks.Push(stack);
-
-            object[] _withp = null;
-            bool isctor = method.Name == ".ctor";
-            if (isctor)
-            {
-                //CLRSharp_Instance pthis = new CLRSharp_Instance(GetType(func.ReturnType) as Type_Common_CLRSharp);
-                //StackFrame.RefObj pthis = new StackFrame.RefObj(stack, 0, StackFrame.RefType.arg);
-                _withp = new object[_params == null ? 1 : (_params.Length + 1)];
-                if (_params != null)
-                    _params.CopyTo(_withp, 1);
-                _withp[0] = _this;
-            }
-            else
-            {
-                if (!method.isStatic)
-                {
-                    _withp = new object[(_params == null) ? 1 : (_params.Length + 1)];
-                    _withp[0] = _this;
-                    if (_params != null)
-                        _params.CopyTo(_withp, 1);
-                }
-                else
-                {
-                    _withp = _params;
-                }
-            }
-            stack.SetParams(_withp);
-
-            if (method.body != null)
-            {
-                stack.Init(method.body);
-                stack.SetCodePos(0);
-                //._pos = method.body.bodyNative.Instructions[0];
-                stack._codepos = 0;
-                if (method.body.bodyNative.HasExceptionHandlers && !SetNoTry)
-                {
-                    RunCodeWithTry(method.body, stack);
-                }
-                else
-                {
-                    RunCode(stack, method.body);
-                }
-            }
-
-            if (this.DebugLevel >= 9)
-            {
-                environment.logger.Log("<CallEnd>");
-
-            }
-            var ret = stacks.Pop().Return();
-
-            return isctor ? _this : ret;
-
-            //if (func.HasBody)
-            //{
-            //    RunCode(stack, func.Body.Instructions);
-            //}
-            //var ret = stacks.Pop().Return();
-            //if (this.DebugLevel >= 9)
-            //{
-            //    environment.logger.Log("<CallEnd>");
-
-            //}
-            //return ret;
-
-
-
-        }
-
-        private void RunCodeWithTry(CodeBody body, StackFrame stack)
-        {
-            try
-            {
-
-                RunCode(stack, body);
-
-            }
-            catch (Exception err)
-            {
-                bool bEH = false;
-                if (body.bodyNative.HasExceptionHandlers)
-                {
-                    bEH = JumpToErr(body, stack, err);
-                }
-                if (!bEH)
-                {
-                    throw err;
-                }
-            }
-        }
-        public ICLRType GetType(string fullname)
-        {
-            var type = environment.GetType(fullname);
-            ICLRType_Sharp stype = type as ICLRType_Sharp;
-            if (stype != null && stype.NeedCCtor)
-            {
-                //执行.cctor
-                stype.InvokeCCtor(this);
-            }
-            return type;
-        }
-
-        public ICLRType GetType(object token)
-        {
-            token.GetHashCode();
-            Mono.Cecil.ModuleDefinition module = null;
-            string typename = null;
-            if (token is Mono.Cecil.TypeDefinition)
-            {
-                Mono.Cecil.TypeDefinition _def = (token as Mono.Cecil.TypeDefinition);
-                module = _def.Module;
-                typename = _def.FullName;
-            }
-            else if (token is Mono.Cecil.TypeReference)
-            {
-                Mono.Cecil.TypeReference _ref = (token as Mono.Cecil.TypeReference);
-                module = _ref.Module;
-                typename = _ref.FullName;
-            }
-            else
-            {
-                throw new NotImplementedException();
-            }
-            return GetType(typename);
-        }
-        Dictionary<int, IMethod> methodCache = new Dictionary<int, IMethod>();
-        Dictionary<int, IField> fieldCache = new Dictionary<int, IField>();
-        public IMethod GetMethod(object token)
-        {
-            try
-            {
-                IMethod __method = null;
-                if (methodCache.TryGetValue(token.GetHashCode(), out __method))
-                {
-                    return __method;
-                }
-                Mono.Cecil.ModuleDefinition module = null;
-                string methodname = null;
-                string typename = null;
-                MethodParamList genlist = null;
-                MethodParamList list = null;
-                if (token is Mono.Cecil.MethodReference)
-                {
-                    Mono.Cecil.MethodReference _ref = (token as Mono.Cecil.MethodReference);
-                    module = _ref.Module;
-                    methodname = _ref.Name;
-                    typename = _ref.DeclaringType.FullName;
-                    list = new MethodParamList(environment, _ref);
-                    if (_ref.IsGenericInstance)
-                    {
-                        Mono.Cecil.GenericInstanceMethod gmethod = _ref as Mono.Cecil.GenericInstanceMethod;
-                        genlist = new MethodParamList(environment, gmethod);
-
-                    }
-                }
-                else if (token is Mono.Cecil.MethodDefinition)
-                {
-                    Mono.Cecil.MethodDefinition _def = token as Mono.Cecil.MethodDefinition;
-                    module = _def.Module;
-                    methodname = _def.Name;
-                    typename = _def.DeclaringType.FullName;
-                    list = new MethodParamList(environment, _def);
-                    if (_def.IsGenericInstance)
-                    {
-                        throw new NotImplementedException();
-                        //Mono.Cecil.GenericInstanceMethod gmethod = _def as Mono.Cecil.GenericInstanceMethod;
-                        //genlist = new MethodParamList(environment, gmethod);
-                    }
-                }
-                else
-                {
-                    throw new NotImplementedException();
-                }
-
-                var typesys = GetType(typename);
-                if (typesys == null)
-                {
-                    typename = typename.Replace("0...", "");
-                    typesys = GetType(typename);
-
-                }
-                if (typesys == null)
-                {
-                    throw new Exception("type can't find:" + typename);
-                }
-
-                IMethod _method = null;
-                if (genlist != null)
-                {
-                    _method = typesys.GetMethodT(methodname, genlist, list);
-                }
-                else
-                {
-                    _method = typesys.GetMethod(methodname, list);
-                }
-                methodCache[token.GetHashCode()] = _method;
-                return _method;
-            }
-            catch (Exception err)
-            {
-
-                throw new Exception("Error GetMethod==<这意味着这个函数无法被L#找到>" + token, err);
-            }
-        }
-        //IMethod GetNewForArray(object token)
-        //{
-        //    IMethod __method = null;
-        //    if (methodCache.TryGetValue(token.GetHashCode(), out __method))
-        //    {
-        //        return __method;
-        //    }
-        //    Mono.Cecil.ModuleDefinition module = null;
-        //    string typename = null;
-        //    if (token is Mono.Cecil.TypeDefinition)
-        //    {
-        //        Mono.Cecil.TypeDefinition _def = (token as Mono.Cecil.TypeDefinition);
-        //        module = _def.Module;
-        //        typename = _def.FullName;
-        //    }
-        //    else if (token is Mono.Cecil.TypeReference)
-        //    {
-        //        Mono.Cecil.TypeReference _ref = (token as Mono.Cecil.TypeReference);
-        //        module = _ref.Module;
-        //        typename = _ref.FullName;
-        //    }
-        //    else
-        //    {
-        //        throw new NotImplementedException();
-        //    }
-
-        //    ICLRType _type = null;
-        //    ICLRType _Itype = GetType(typename);
-        //    if (_Itype is ICLRType_Sharp)
-        //    {
-        //        _type = environment.GetType(typeof(CLRSharp.CLRSharp_Instance[]));
-        //    }
-        //    else
-        //    {
-        //        typename += "[]";
-        //        //var _type = context.environment.GetType(typename, type.Module);
-        //        _type = GetType(typename);
-
-        //    }
-        //    MethodParamList tlist = MethodParamList.const_OneParam_Int(environment);
-        //    var m = _type.GetMethod(".ctor", tlist);
-        //    methodCache[token.GetHashCode()] = m;
-        //    return m;
-        //}
-        public IField GetField(object token)
-        {
-            IField __field = null;
-            if (fieldCache.TryGetValue(token.GetHashCode(), out __field))
-            {
-                return __field;
-            }
-            if (token is Mono.Cecil.FieldDefinition)
-            {
-                Mono.Cecil.FieldDefinition field = token as Mono.Cecil.FieldDefinition;
-                var type = GetType(field.DeclaringType.FullName);
-                __field = type.GetField(field.Name);
-
-
-
-            }
-            else if (token is Mono.Cecil.FieldReference)
-            {
-                Mono.Cecil.FieldReference field = token as Mono.Cecil.FieldReference;
-                var type = GetType(field.DeclaringType.FullName);
-                __field = type.GetField(field.Name);
-
-
-            }
-            //else if(token is CLRSharp_Instance)
-            // {
-            //CLRSharp_Instance inst = token as CLRSharp_Instance;
-            //return inst.Fields[field.Name];
-            // }
-
-            else
-            {
-                throw new NotImplementedException("不可处理的token" + token.GetType().ToString());
-            }
-            fieldCache[token.GetHashCode()] = __field;
-            return __field;
-        }
-        object GetToken(object token)
-        {
-            if (token is Mono.Cecil.FieldDefinition || token is Mono.Cecil.FieldReference)
-            {
-                var def = token as Mono.Cecil.FieldDefinition;
-                if (def != null && def.Name[0] == '$') return def.InitialValue;
-                //都是用来初始化数组的方法,忽略
-
-                return GetField(token);
-
-            }
-
-            else if (token is Mono.Cecil.TypeDefinition || token is Mono.Cecil.TypeReference)
-            {
-                return GetType(token);
-            }
-            else
-            {
-                throw new NotImplementedException("不可处理的token" + token.GetType().ToString());
-            }
-        }
-        int GetParamPos(object token)
-        {
-            if (token is byte)
-            {
-                return (byte)token;
-            }
-            else if (token is sbyte)
-            {
-                return (sbyte)token;
-            }
-            else if (token is int)
-            {
-                return (int)token;
-            }
-            else if (token is Mono.Cecil.ParameterReference)
-            {
-                int i = (token as Mono.Cecil.ParameterReference).Index;
-                //if (this.stacks.Peek().Name == ".ctor" || this.stacks.Peek().IsStatic == false)
-                {
-                    //i++;
-                }
-                return i;
-            }
-            else
-            {
-                throw new NotImplementedException();
-            }
-        }
-        int GetBaseCount(Type _now, Type _base)
-        {
-            if (_now == _base)
-                return 0;
-            if (_now.IsSubclassOf(_base) == false)
-            {
-                return -1;
-            }
-            return GetBaseCount(_now.BaseType, _base) + 1;
-        }
-        bool JumpToErr(CodeBody body, StackFrame frame, Exception err)
-        {
-            var posnow = frame.GetCode();
-            List<Mono.Cecil.Cil.ExceptionHandler> ehs = new List<ExceptionHandler>();
-            Mono.Cecil.Cil.ExceptionHandler ehNear = null;
-            int ehNearB = -1;
-            foreach (var eh in body.bodyNative.ExceptionHandlers)
-            {
-                if (eh.HandlerType == ExceptionHandlerType.Catch)
-                {
-                    Type ehtype = GetType(eh.CatchType).TypeForSystem;
-                    if (ehtype == err.GetType() || err.GetType().IsSubclassOf(ehtype))
-                    //if(GetType(eh.CatchType)== environment.GetType(err.GetType()))
-                    {
-                        if (eh.TryStart.Offset <= posnow.Offset && eh.TryEnd.Offset >= posnow.Offset)
-                        {
-                            if (ehNear == null)
-                            {
-                                ehNear = eh;//第一个
-                                ehNearB = GetBaseCount(ehtype, err.GetType());
-                            }
-                            else
-                            {
-                                if (eh.TryStart.Offset > ehNear.TryStart.Offset || eh.TryEnd.Offset < ehNear.TryEnd.Offset)//范围更小
-                                {
-                                    ehNear = eh;
-                                    ehNearB = GetBaseCount(ehtype, err.GetType());
-                                }
-                                else if (eh.TryStart.Offset == ehNear.TryStart.Offset || eh.TryEnd.Offset == ehNear.TryEnd.Offset)//范围相等
-                                {
-                                    if (ehtype == err.GetType())//类型一致,没有比这个更牛的了
-                                    {
-                                        ehNear = eh;
-                                        ehNearB = GetBaseCount(ehtype, err.GetType());
-                                    }
-                                    else if (GetType(ehNear.CatchType).TypeForSystem == err.GetType())//上次找到的就是第一,不用比了
-                                    {
-                                        continue;
-                                    }
-                                    else //比较上次找到的类型,和这次找到的类型的亲缘性;
-                                    {
-                                        int newehNearB = GetBaseCount(ehtype, err.GetType());
-                                        if (newehNearB == -1) continue;
-                                        if (newehNearB < ehNearB)
-                                        {
-                                            ehNear = eh;
-                                            ehNearB = newehNearB;
-                                        }
-                                    }
-                                }
-                            }
-                            ehs.Add(eh);
-                        }
-                    }
-
-                }
-            }
-            if (ehNear != null)
-            {
-                frame.stackCalc.Push(err);
-                frame.SetCodePos(ehNear.HandlerStart.Offset);// ._pos = ehNear.HandlerStart;
-                RunCodeWithTry(body, frame);
-                return true;
-            }
-            return false;
-        }
-
-        void RunCode(StackFrame stack, CodeBody body)
-        {
-            while (true)
-            {
-                //var code = stack._pos;
-                int _pos = stack._codepos;
-                var _code = body.opCodes[_pos];
-                if (DebugLevel >= 9)
-                {
-                    environment.logger.Log(_code.ToString());
-                }
-                switch (_code.code)
-                {
-                    ///////////
-                    //流程控制
-                    case CodeEx.Nop:
-                        stack.Nop();
-                        break;
-                    case CodeEx.Ret:
-                        stack.Ret();
-                        return;
-                    case CodeEx.Leave:
-                        stack.Leave(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Leave_S:
-                        stack.Leave(_code.tokenAddr_Index);
-                        break;
-                    //流程控制之goto
-                    case CodeEx.Br:
-                        stack.Br(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Br_S:
-                        stack.Br(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Brtrue:
-                        stack.Brtrue(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Brtrue_S:
-                        stack.Brtrue(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Brfalse:
-                        stack.Brfalse(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Brfalse_S:
-                        stack.Brfalse(_code.tokenAddr_Index);
-                        break;
-
-                    //比较流程控制
-                    case CodeEx.Beq:
-                        stack.Beq(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Beq_S:
-                        stack.Beq(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bne_Un:
-                        stack.Bne_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bne_Un_S:
-                        stack.Bne_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bge:
-                        stack.Bge(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bge_S:
-                        stack.Bge(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bge_Un:
-                        stack.Bge_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bge_Un_S:
-                        stack.Bge_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bgt:
-                        stack.Bgt(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bgt_S:
-                        stack.Bgt(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bgt_Un:
-                        stack.Bgt_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Bgt_Un_S:
-                        stack.Bgt_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Ble:
-                        stack.Ble(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Ble_S:
-                        stack.Ble(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Ble_Un:
-                        stack.Ble_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Ble_Un_S:
-                        stack.Ble_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Blt:
-                        stack.Blt(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Blt_S:
-                        stack.Blt(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Blt_Un:
-                        stack.Blt_Un(_code.tokenAddr_Index);
-                        break;
-                    case CodeEx.Blt_Un_S:
-                        stack.Blt_Un(_code.tokenAddr_Index);
-                        break;
-                    //逻辑计算
-                    case CodeEx.Ceq:
-                        stack.Ceq();
-                        break;
-                    case CodeEx.Cgt:
-                        stack.Cgt();
-                        break;
-                    case CodeEx.Cgt_Un:
-                        stack.Cgt_Un();
-                        break;
-                    case CodeEx.Clt:
-                        stack.Clt();
-                        break;
-                    case CodeEx.Clt_Un:
-                        stack.Clt_Un();
-                        break;
-                    case CodeEx.Ckfinite:
-                        stack.Ckfinite();
-                        break;
-                    //常量加载
-                    case CodeEx.Ldc_I4:
-                        stack.Ldc_I4(_code.tokenI32);
-                        break;
-                    case CodeEx.Ldc_I4_S:
-                        stack.Ldc_I4(_code.tokenI32);
-                        break;
-                    case CodeEx.Ldc_I4_M1:
-                        stack.Ldc_I4(-1);
-                        break;
-                    case CodeEx.Ldc_I4_0:
-                        stack.Ldc_I4(0);
-                        break;
-                    case CodeEx.Ldc_I4_1:
-                        stack.Ldc_I4(1);
-                        break;
-                    case CodeEx.Ldc_I4_2:
-                        stack.Ldc_I4(2);
-                        break;
-                    case CodeEx.Ldc_I4_3:
-                        stack.Ldc_I4(3);
-                        break;
-                    case CodeEx.Ldc_I4_4:
-                        stack.Ldc_I4(4);
-                        break;
-                    case CodeEx.Ldc_I4_5:
-                        stack.Ldc_I4(5);
-                        break;
-                    case CodeEx.Ldc_I4_6:
-                        stack.Ldc_I4(6);
-                        break;
-                    case CodeEx.Ldc_I4_7:
-                        stack.Ldc_I4(7);
-                        break;
-                    case CodeEx.Ldc_I4_8:
-                        stack.Ldc_I4(8);
-                        break;
-                    case CodeEx.Ldc_I8:
-                        stack.Ldc_I8(_code.tokenI64);
-                        break;
-                    case CodeEx.Ldc_R4:
-                        stack.Ldc_R4(_code.tokenR32);
-                        break;
-                    case CodeEx.Ldc_R8:
-                        stack.Ldc_R8(_code.tokenR64);
-                        break;
-
-                    //定义为临时变量
-                    case CodeEx.Stloc:
-                        stack.Stloc(_code.tokenI32);
-                        break;
-                    case CodeEx.Stloc_S:
-                        stack.Stloc(_code.tokenI32);
-                        break;
-                    case CodeEx.Stloc_0:
-                        stack.Stloc(0);
-                        break;
-                    case CodeEx.Stloc_1:
-                        stack.Stloc(1);
-                        break;
-                    case CodeEx.Stloc_2:
-                        stack.Stloc(2);
-                        break;
-                    case CodeEx.Stloc_3:
-                        stack.Stloc(3);
-                        break;
-                    //从临时变量加载
-                    case CodeEx.Ldloc:
-                        stack.Ldloc(_code.tokenI32);
-                        break;
-                    case CodeEx.Ldloc_S:
-                        stack.Ldloc(_code.tokenI32);
-                        break;
-                    case CodeEx.Ldloc_0:
-                        stack.Ldloc(0);
-                        break;
-                    case CodeEx.Ldloc_1:
-                        stack.Ldloc(1);
-                        break;
-                    case CodeEx.Ldloc_2:
-                        stack.Ldloc(2);
-                        break;
-                    case CodeEx.Ldloc_3:
-                        stack.Ldloc(3);
-                        break;
-                    case CodeEx.Ldloca:
-                        stack.Ldloca(_code.tokenI32);
-                        break;
-                    case CodeEx.Ldloca_S:
-                        stack.Ldloca(_code.tokenI32);
-                        break;
-                    //加载字符串
-                    case CodeEx.Ldstr:
-                        stack.Ldstr(_code.tokenStr);
-                        break;
-                    //呼叫函数
-                    case CodeEx.Call:
-                        stack.Call(this, _code.tokenMethod, false);
-                        break;
-                    case CodeEx.Callvirt:
-                        stack.Call(this, _code.tokenMethod, true);
-                        break;
-                    //算术指令
-                    case CodeEx.Add:
-                        stack.Add();
-                        break;
-                    case CodeEx.Sub:
-                        stack.Sub();
-                        break;
-                    case CodeEx.Mul:
-                        stack.Mul();
-                        break;
-                    case CodeEx.Div:
-                        stack.Div();
-                        break;
-                    case CodeEx.Div_Un:
-                        stack.Div_Un();
-                        break;
-                    case CodeEx.Rem:
-                        stack.Rem();
-                        break;
-                    case CodeEx.Rem_Un:
-                        stack.Rem_Un();
-                        break;
-                    case CodeEx.Neg:
-                        stack.Neg();
-                        break;
-
-                    //装箱
-                    case CodeEx.Box:
-                        stack.Box(_code.tokenType);
-                        break;
-                    case CodeEx.Unbox:
-                        stack.Unbox();
-                        break;
-                    case CodeEx.Unbox_Any:
-                        stack.Unbox_Any();
-                        break;
-
-                    //加载参数
-                    case CodeEx.Ldarg:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Ldarg(_code.tokenI32);
-                        else
-                            stack.Ldarg(_code.tokenI32 + 1);
-
-                        break;
-                    case CodeEx.Ldarg_S:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Ldarg(_code.tokenI32);
-                        else
-                            stack.Ldarg(_code.tokenI32 + 1);
-                        break;
-                    case CodeEx.Ldarg_0:
-                        stack.Ldarg(0);
-                        break;
-                    case CodeEx.Ldarg_1:
-                        stack.Ldarg(1);
-                        break;
-                    case CodeEx.Ldarg_2:
-                        stack.Ldarg(2);
-                        break;
-                    case CodeEx.Ldarg_3:
-                        stack.Ldarg(3);
-                        break;
-                    case CodeEx.Ldarga:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Ldarga(_code.tokenI32);
-                        else
-                            stack.Ldarga(_code.tokenI32 + 1);
-
-                        break;
-                    case CodeEx.Ldarga_S:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Ldarga(_code.tokenI32);
-                        else
-                            stack.Ldarga(_code.tokenI32 + 1);
-
-                        break;
-                    //转换
-                    case CodeEx.Conv_I1:
-                        stack.Conv_I1();
-                        break;
-                    case CodeEx.Conv_U1:
-                        stack.Conv_U1();
-                        break;
-                    case CodeEx.Conv_I2:
-                        stack.Conv_I2();
-                        break;
-                    case CodeEx.Conv_U2:
-                        stack.Conv_U2();
-                        break;
-                    case CodeEx.Conv_I4:
-                        stack.Conv_I4();
-                        break;
-                    case CodeEx.Conv_U4:
-                        stack.Conv_U4();
-                        break;
-                    case CodeEx.Conv_I8:
-                        stack.Conv_I8();
-                        break;
-                    case CodeEx.Conv_U8:
-                        stack.Conv_U8();
-                        break;
-                    case CodeEx.Conv_I:
-                        stack.Conv_I();
-                        break;
-                    case CodeEx.Conv_U:
-                        stack.Conv_U();
-                        break;
-                    case CodeEx.Conv_R4:
-                        stack.Conv_R4();
-                        break;
-                    case CodeEx.Conv_R8:
-                        stack.Conv_R8();
-                        break;
-                    case CodeEx.Conv_R_Un:
-                        stack.Conv_R_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_I1:
-                        stack.Conv_Ovf_I1();
-                        break;
-                    case CodeEx.Conv_Ovf_U1:
-                        stack.Conv_Ovf_U1();
-                        break;
-                    case CodeEx.Conv_Ovf_I2:
-                        stack.Conv_Ovf_I2();
-                        break;
-                    case CodeEx.Conv_Ovf_U2:
-                        stack.Conv_Ovf_U2();
-                        break;
-                    case CodeEx.Conv_Ovf_I4:
-                        stack.Conv_Ovf_I4();
-                        break;
-                    case CodeEx.Conv_Ovf_U4:
-                        stack.Conv_Ovf_U4();
-                        break;
-
-                    case CodeEx.Conv_Ovf_I8:
-                        stack.Conv_Ovf_I8();
-                        break;
-                    case CodeEx.Conv_Ovf_U8:
-                        stack.Conv_Ovf_U8();
-                        break;
-                    case CodeEx.Conv_Ovf_I:
-                        stack.Conv_Ovf_I();
-                        break;
-                    case CodeEx.Conv_Ovf_U:
-                        stack.Conv_Ovf_U();
-                        break;
-                    case CodeEx.Conv_Ovf_I1_Un:
-                        stack.Conv_Ovf_I1_Un();
-                        break;
-
-                    case CodeEx.Conv_Ovf_U1_Un:
-                        stack.Conv_Ovf_U1_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_I2_Un:
-                        stack.Conv_Ovf_I2_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_U2_Un:
-                        stack.Conv_Ovf_U2_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_I4_Un:
-                        stack.Conv_Ovf_I4_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_U4_Un:
-                        stack.Conv_Ovf_U4_Un();
-                        break;
-
-                    case CodeEx.Conv_Ovf_I8_Un:
-                        stack.Conv_Ovf_I8_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_U8_Un:
-                        stack.Conv_Ovf_U8_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_I_Un:
-                        stack.Conv_Ovf_I_Un();
-                        break;
-                    case CodeEx.Conv_Ovf_U_Un:
-                        stack.Conv_Ovf_U_Un();
-                        break;
-                    //数组
-                    case CodeEx.Newarr:
-                        stack.NewArr(this, _code.tokenType.TypeForSystem);
-                        break;
-                    case CodeEx.Ldlen:
-                        stack.LdLen();
-                        break;
-                    case CodeEx.Ldelema:
-                        stack.Ldelema(_code.tokenUnknown);
-                        break;
-                    case CodeEx.Ldelem_I1:
-                        stack.Ldelem_I1();
-                        break;
-                    case CodeEx.Ldelem_U1:
-                        stack.Ldelem_U1();
-                        break;
-                    case CodeEx.Ldelem_I2:
-                        stack.Ldelem_I2();
-                        break;
-                    case CodeEx.Ldelem_U2:
-                        stack.Ldelem_U2();
-                        break;
-                    case CodeEx.Ldelem_I4:
-                        stack.Ldelem_I4();
-                        break;
-                    case CodeEx.Ldelem_U4:
-                        stack.Ldelem_U4();
-                        break;
-                    case CodeEx.Ldelem_I8:
-                        stack.Ldelem_I8();
-                        break;
-                    case CodeEx.Ldelem_I:
-                        stack.Ldelem_I();
-                        break;
-                    case CodeEx.Ldelem_R4:
-                        stack.Ldelem_R4();
-                        break;
-                    case CodeEx.Ldelem_R8:
-                        stack.Ldelem_R8();
-                        break;
-                    case CodeEx.Ldelem_Ref:
-                        stack.Ldelem_Ref();
-                        break;
-                    case CodeEx.Ldelem_Any:
-                        stack.Ldelem_Any(_code.tokenUnknown);
-                        break;
-
-                    case CodeEx.Stelem_I:
-                        stack.Stelem_I();
-                        break;
-                    case CodeEx.Stelem_I1:
-                        stack.Stelem_I1();
-                        break;
-                    case CodeEx.Stelem_I2:
-                        stack.Stelem_I2();
-                        break;
-                    case CodeEx.Stelem_I4:
-                        stack.Stelem_I4();
-                        break;
-                    case CodeEx.Stelem_I8:
-                        stack.Stelem_I8();
-                        break;
-                    case CodeEx.Stelem_R4:
-                        stack.Stelem_R4();
-                        break;
-                    case CodeEx.Stelem_R8:
-                        stack.Stelem_R8();
-                        break;
-                    case CodeEx.Stelem_Ref:
-                        stack.Stelem_Ref();
-                        break;
-                    case CodeEx.Stelem_Any:
-                        stack.Stelem_Any();
-                        break;
-
-                    case CodeEx.Newobj:
-                        stack.NewObj(this, _code.tokenMethod);
-                        break;
-
-                    case CodeEx.Dup:
-                        stack.Dup();
-                        break;
-                    case CodeEx.Pop:
-                        stack.Pop();
-                        break;
-
-                    case CodeEx.Ldfld:
-                        stack.Ldfld(this, _code.tokenField);
-                        break;
-                    case CodeEx.Ldflda:
-                        stack.Ldflda(this, _code.tokenField);
-                        break;
-                    case CodeEx.Ldsfld:
-                        stack.Ldsfld(this, _code.tokenField);
-                        break;
-                    case CodeEx.Ldsflda:
-                        stack.Ldsflda(this, _code.tokenField);
-                        break;
-                    case CodeEx.Stfld:
-                        stack.Stfld(this, _code.tokenField);
-                        break;
-                    case CodeEx.Stsfld:
-                        stack.Stsfld(this, _code.tokenField);
-                        break;
-
-
-                    case CodeEx.Constrained:
-                        stack.Constrained(this, _code.tokenType);
-                        break;
-
-                    case CodeEx.Isinst:
-                        stack.Isinst(this, _code.tokenType);
-                        break;
-                    case CodeEx.Ldtoken:
-                        stack.Ldtoken(this, GetToken(_code.tokenUnknown));
-                        break;
-
-                    case CodeEx.Ldftn:
-                        stack.Ldftn(this, _code.tokenMethod);
-                        break;
-                    case CodeEx.Ldvirtftn:
-                        stack.Ldvirtftn(this, _code.tokenMethod);
-                        break;
-
-                    case CodeEx.Calli:
-                        stack.Calli(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Starg_S:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Starg(this, _code.tokenI32);
-                        else
-                            stack.Starg(this, _code.tokenI32 + 1);
-                        break;
-                    case CodeEx.Starg:
-                        if (body.bodyNative.Method.IsStatic)
-                            stack.Starg(this, _code.tokenI32);
-                        else
-                            stack.Starg(this, _code.tokenI32 + 1);
-                        break;
-                    case CodeEx.Volatile:
-                        stack.Volatile();
-                        break;
-                    ///下面是还没有处理的指令
-                    case CodeEx.Break:
-                        stack.Break(this, _code.tokenUnknown);
-                        break;
-
-                    case CodeEx.Ldnull:
-                        stack.Ldnull();
-                        break;
-                    case CodeEx.Jmp:
-                        stack.Jmp(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Switch:
-                        stack.Switch(this, _code.tokenAddr_Switch);
-                        break;
-                    case CodeEx.Ldind_I1:
-                        stack.Ldind_I1();
-                        break;
-                    case CodeEx.Ldind_U1:
-                        stack.Ldind_U1();
-                        break;
-                    case CodeEx.Ldind_I2:
-                        stack.Ldind_I2();
-                        break;
-                    case CodeEx.Ldind_U2:
-                        stack.Ldind_U2();
-                        break;
-                    case CodeEx.Ldind_I4:
-                        stack.Ldind_I4();
-                        break;
-                    case CodeEx.Ldind_U4:
-                        stack.Ldind_U4();
-                        break;
-                    case CodeEx.Ldind_I8:
-                        stack.Ldind_I8();
-                        break;
-                    case CodeEx.Ldind_I:
-                        stack.Ldind_I();
-                        break;
-                    case CodeEx.Ldind_R4:
-                        stack.Ldind_R4();
-                        break;
-                    case CodeEx.Ldind_R8:
-                        stack.Ldind_R8();
-                        break;
-                    case CodeEx.Ldind_Ref:
-                        stack.Ldind_Ref();
-                        break;
-                    case CodeEx.Stind_Ref:
-                        stack.Stind_Ref(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_I1:
-                        stack.Stind_I1(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_I2:
-                        stack.Stind_I2(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_I4:
-                        stack.Stind_I4(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_I8:
-                        stack.Stind_I8(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_R4:
-                        stack.Stind_R4(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_R8:
-                        stack.Stind_R8(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.And:
-                        stack.And();
-                        break;
-                    case CodeEx.Or:
-                        stack.Or();
-                        break;
-                    case CodeEx.Xor:
-                        stack.Xor();
-                        break;
-                    case CodeEx.Shl:
-                        stack.Shl(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Shr:
-                        stack.Shr(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Shr_Un:
-                        stack.Shr_Un(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Not:
-                        stack.Not();
-                        break;
-                    case CodeEx.Cpobj:
-                        stack.Cpobj(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Ldobj:
-                        stack.Ldobj(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Castclass:
-                        stack.Castclass(this, _code.tokenType);
-                        break;
-                    case CodeEx.Throw:
-                        stack.Throw(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stobj:
-                        stack.Stobj(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Refanyval:
-                        stack.Refanyval(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Mkrefany:
-                        stack.Mkrefany(this, _code.tokenUnknown);
-                        break;
-
-                    case CodeEx.Add_Ovf:
-                        stack.Add_Ovf(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Add_Ovf_Un:
-                        stack.Add_Ovf_Un(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Mul_Ovf:
-                        stack.Mul_Ovf(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Mul_Ovf_Un:
-                        stack.Mul_Ovf_Un(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Sub_Ovf:
-                        stack.Sub_Ovf(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Sub_Ovf_Un:
-                        stack.Sub_Ovf_Un(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Endfinally:
-                        stack.Endfinally(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Stind_I:
-                        stack.Stind_I(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Arglist:
-                        stack.Arglist(this, _code.tokenUnknown);
-                        break;
-
-
-                    case CodeEx.Localloc:
-                        stack.Localloc(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Endfilter:
-                        stack.Endfilter(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Unaligned:
-                        stack.Unaligned(this, _code.tokenUnknown);
-                        break;
-
-                    case CodeEx.Tail:
-                        stack.Tail(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Initobj:
-                        stack.Initobj(this, _code.tokenType);
-                        break;
-                    case CodeEx.Cpblk:
-                        stack.Cpblk(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Initblk:
-                        stack.Initblk(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.No:
-                        stack.No(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Rethrow:
-                        stack.Rethrow(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Sizeof:
-                        stack.Sizeof(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Refanytype:
-                        stack.Refanytype(this, _code.tokenUnknown);
-                        break;
-                    case CodeEx.Readonly:
-                        stack.Readonly(this, _code.tokenUnknown);
-                        break;
-                    default:
-                        throw new Exception("未实现的OpCode:" + _code.code);
-                }
-            }
-
-        }
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/Context.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: fc17fbf613d7be4429c33b6fc1f502c6
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 3219
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/StackFrame.cs

@@ -1,3219 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public class RefFunc
-    {
-        public IMethod _method;
-        public object _this;
-        public RefFunc(IMethod _method, object _this)
-        {
-            this._method = _method;
-            this._this = _this;
-        }
-    }
-    /// <summary>
-    /// 堆栈帧
-    /// 一个堆栈帧,包含一个计算栈,一个临时变量槽,一个参数槽
-    /// 模拟虚拟机上的堆栈帧
-    /// </summary>
-    public class StackFrame
-    {
-        public string Name
-        {
-            get;
-            private set;
-        }
-        public bool IsStatic
-        {
-            get;
-            private set;
-        }
-        public StackFrame(string name, bool isStatic)
-        {
-            this.Name = name;
-            this.IsStatic = IsStatic;
-        }
-        Mono.Cecil.Cil.Instruction _posold;
-        public void SetCodePos(int offset)
-        {
-            _codepos = this._body.addr[offset];
-        }
-        public Mono.Cecil.Cil.Instruction GetCode()
-        {
-            if (_body == null) return null;
-            int nowaddr = this._body.opCodes[_codepos].addr;
-            foreach (var c in this._body.bodyNative.Instructions)
-            {
-                if (nowaddr == c.Offset)
-                    return c;
-            }
-            return null;
-        }
-        //public Mono.Cecil.Cil.Instruction _pos
-        //{
-        //    get
-        //    {
-        //        return _posold;
-        //    }
-        //    set
-        //    {
-        //        if (value == null)
-        //        {
-        //            _codepos = -1;
-        //        }
-        //        else
-        //        {
-        //            _codepos = _body.addr[value.Offset];
-        //        }
-        //        _posold = value;
-        //    }
-        //}
-        public int _codepos = 0;
-        public class MyCalcStack : Stack<object>
-        {
-            //Queue<VBox> unused = new Queue<VBox>();
-            public void Push(VBox box)
-            {
-                //if (box != null)
-                //{
-                //    box.refcount++;
-                //    while (unused.Count > 0)
-                //    {
-                //        VBox b = unused.Dequeue();
-                //        if (b.refcount == 0)
-                //            ValueOnStack.UnUse(b);
-                //    }
-                //}
-                base.Push(box);
-            }
-            public new object Pop()
-            {
-                var ob = base.Pop();
-                //VBox box = ob as VBox;
-                //if (box != null)
-                //{
-                //    box.refcount--;
-                //    if (box.refcount == 0)
-                //        unused.Enqueue(box);
-                //}
-                return ob;
-
-            }
-            public void ClearVBox()
-            {
-                //while (unused.Count > 0)
-                //{
-                //    VBox b = unused.Dequeue();
-                //    if (b.refcount == 0)
-                //    {
-                //        ValueOnStack.UnUse(b);
-                //    }
-                //    else
-                //    {
-                //        Console.WriteLine("not zero.");
-                //    }
-                //}
-                this.Clear();
-            }
-        }
-        public MyCalcStack stackCalc = new MyCalcStack();
-        public class MySlotVar : List<object>
-        {
-            public new void Add(object obj)
-            {
-                base.Add(obj);
-            }
-            public void Add(VBox box)
-            {
-                //if (box != null)
-                //{
-                //    box.refcount++;
-                //}
-                base.Add(box);
-            }
-            public void ClearVBox()
-            {
-                foreach (object b in this)
-                {
-                    VBox box = b as VBox;
-                    if (box != null)
-                    {
-                        ValueOnStack.UnUse(box);
-                    }
-                }
-                //        box.refcount--;
-                //        if (box.refcount == 0)
-                //        {
-                //            ValueOnStack.UnUse(box);
-                //        }
-                //        else
-                //        {
-                //            Console.WriteLine("not zero.");
-                //        }
-                //    }
-                //}
-                this.Clear();
-            }
-        }
-        public MySlotVar slotVar = new MySlotVar();
-        public object[] _params = null;
-        public void SetParams(object[] _p)
-        {
-            if (_p == null)
-            {
-                _params = null;
-                return;
-            }
-            _params = new object[_p.Length];
-            for (int i = 0; i < _p.Length; i++)
-            {
-                if (_p[i] != null)
-                {
-                    var vbox = ValueOnStack.MakeVBox(_p[i].GetType());
-                    if (vbox != null)
-                    {
-                        vbox.SetDirect(_p[i]);
-                        _params[i] = vbox;
-                        continue;
-                    }
-                }
-
-                _params[i] = _p[i];
-            }
-        }
-        CodeBody _body = null;
-        public CodeBody codebody
-        {
-            get
-            {
-                return _body;
-            }
-        }
-        public void Init(CodeBody body)
-        {
-            _body = body;
-            if (body.typelistForLoc != null)
-            {
-                for (int i = 0; i < body.typelistForLoc.Count; i++)
-                {
-                    ICLRType t = _body.typelistForLoc[i];
-
-                    slotVar.Add(ValueOnStack.MakeVBox(t));
-
-                }
-            }
-        }
-        public object Return()
-        {
-
-            this.slotVar.ClearVBox();
-            if (this.stackCalc.Count == 0) return null;
-            object ret = stackCalc.Pop();
-            this.stackCalc.ClearVBox();
-
-            return ret;
-        }
-        void FillArray(object array, byte[] bytes)
-        {
-            if (bytes == null)
-                return;
-            if (array is byte[])
-            {
-                byte[] arr = array as byte[];
-                for (int i = 0; i < bytes.Length; i++)
-                {
-                    arr[i] = bytes[i];
-                }
-            }
-            else if (array is sbyte[])
-            {
-                sbyte[] arr = array as sbyte[];
-                for (int i = 0; i < bytes.Length; i++)
-                {
-                    arr[i] = (sbyte)bytes[i];
-                }
-            }
-            else if (array is Int16[])
-            {
-                int step = 2;
-                Int16[] arr = array as Int16[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToInt16(bytes, i * step);
-                }
-            }
-            else if (array is UInt16[])
-            {
-                int step = 2;
-                UInt16[] arr = array as UInt16[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToUInt16(bytes, i * step);
-                }
-            }
-            else if (array is char[])
-            {
-                int step = 2;
-                char[] arr = array as char[];
-
-                for (int i = 0; i < Math.Min(bytes.Length / step, arr.Length); i++)
-                {
-                    arr[i] = (char)BitConverter.ToUInt16(bytes, i * step);
-                }
-            }
-            else if (array is int[])
-            {
-                int step = 4;
-                int[] arr = array as int[];
-
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToInt32(bytes, i * step);
-                }
-            }
-            else if (array is uint[])
-            {
-                int step = 4;
-                uint[] arr = array as uint[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToUInt32(bytes, i * step);
-                }
-            }
-            else if (array is Int64[])
-            {
-                int step = 8;
-                Int64[] arr = array as Int64[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToInt64(bytes, i * step);
-                }
-            }
-            else if (array is UInt64[])
-            {
-                int step = 8;
-                UInt64[] arr = array as UInt64[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToUInt64(bytes, i * step);
-                }
-            }
-            else if (array is float[])
-            {
-                int step = 4;
-                float[] arr = array as float[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToSingle(bytes, i * step);
-                }
-            }
-            else if (array is double[])
-            {
-                int step = 8;
-                double[] arr = array as double[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToDouble(bytes, i * step);
-                }
-            }
-            else if (array is bool[])
-            {
-                int step = 1;
-                bool[] arr = array as bool[];
-                for (int i = 0; i < bytes.Length / step; i++)
-                {
-                    arr[i] = BitConverter.ToBoolean(bytes, i * step);
-                }
-            }
-            else
-            {
-                throw new NotImplementedException("array=" + array.GetType());
-            }
-        }
-        //流程控制
-        public void Call(ThreadContext context, IMethod _clrmethod, bool bVisual)
-        {
-
-            if (_clrmethod == null)//不想被执行的函数
-            {
-                _codepos++;
-                return;
-            }
-
-            object[] _pp = null;
-            object _this = null;
-            bool bCLR = _clrmethod is IMethod_Sharp;
-            if (_clrmethod.ParamList != null)
-            {
-                _pp = new object[_clrmethod.ParamList.Count];
-                for (int i = 0; i < _pp.Length; i++)
-                {
-                    int iCallPPos = _pp.Length - 1 - i;
-                    ICLRType pType = _clrmethod.ParamList[iCallPPos];
-                    var pp = stackCalc.Pop();
-                    if (pp is CLRSharp_Instance && pType.TypeForSystem != typeof(CLRSharp_Instance))
-                    {
-                        var inst = pp as CLRSharp_Instance;
-
-                        var btype = inst.type.ContainBase(pType.TypeForSystem);
-                        if (btype)
-                        {
-                            var CrossBind = context.environment.GetCrossBind(pType.TypeForSystem);
-                            if (CrossBind != null)
-                            {
-                                pp = CrossBind.CreateBind(inst);
-                            }
-                            else
-                            {
-                                pp = inst.system_base;
-                                //如果没有绑定器,尝试直接使用System_base;
-                            }
-                            //context.environment.logger.Log("这里有一个需要映射的类型");
-                        }
-
-                    }
-                    if (pp is VBox && !bCLR)
-                    {
-                        ValueOnStack.UnUse(pp as VBox);
-                        pp = (pp as VBox).BoxDefine();
-                    }
-                    if (pp is ICLRType_System)
-                    {
-                        pp = (pp as ICLRType_System).TypeForSystem;
-                    }
-                    if ((pp is int) && (pType.TypeForSystem != typeof(int) && pType.TypeForSystem != typeof(object)))
-                    {
-                        var _vbox = ValueOnStack.MakeVBox(pType);
-                        if (_vbox != null)
-                        {
-                            _vbox.SetDirect(pp);
-                            if (bCLR)
-                                pp = _vbox;
-                            else
-                                pp = _vbox.BoxDefine();
-                        }
-                    }
-                    _pp[iCallPPos] = pp;
-                }
-            }
-
-
-            //if (method.HasThis)
-            if (!_clrmethod.isStatic)
-            {
-                _this = stackCalc.Pop();
-            }
-            if (_clrmethod.DeclaringType.FullName.Contains("System.Runtime.CompilerServices.RuntimeHelpers") && _clrmethod.Name.Contains("InitializeArray"))
-            {
-
-                byte[] bb = _pp[1] as byte[];
-                if (bb == null && _pp[1] is CLRSharp.Field_Common_CLRSharp)
-                {
-                    bb = (_pp[1] as CLRSharp.Field_Common_CLRSharp).field.InitialValue;
-                }
-                FillArray(_pp[0], bb);
-                _codepos++;
-                return;
-            }
-            if (_clrmethod.DeclaringType.FullName.Contains("System.Type") && _clrmethod.Name.Contains("GetTypeFromHandle"))
-            {
-                stackCalc.Push(_pp[0]);
-                _codepos++;
-                return;
-            }
-            if (_clrmethod.DeclaringType.FullName.Contains("System.Object") && _clrmethod.Name.Contains(".ctor"))
-            {//跳过这个没意义的构造
-                _codepos++;
-                return;
-            }
-            if (_this is RefObj && _clrmethod.Name != ".ctor")
-            {
-                _this = (_this as RefObj).Get();
-
-            }
-            if (_this is VBox)
-            {
-                //ValueOnStack.UnUse(_this as VBox);//放在这里会导致计算错误,原因待查
-
-                _this = (_this as VBox).BoxDefine();
-            }
-            bool bCross = (_this is CLRSharp_Instance && _clrmethod is IMethod_System);
-            object returnvar = _clrmethod.Invoke(context, _this, _pp, bVisual);
-
-            if(_this is VBox)
-            {
-                ValueOnStack.UnUse(_this as VBox);
-            }
-            if (bCross)
-            {
-                //这里究竟如何处理还需要再考虑
-                //returnvar = _clrmethod.Invoke(context, (_this as CLRSharp_Instance).system_base, _pp, bVisual);
-                if (_clrmethod.Name.Contains(".ctor"))
-                {
-                    (_this as CLRSharp_Instance).system_base = returnvar;
-                    returnvar = (_this);
-                }
-            }
-            else
-            {
-                //returnvar = _clrmethod.Invoke(context, _this, _pp, bVisual);
-            }
-
-
-            // bool breturn = false;
-            if (_clrmethod.ReturnType != null && _clrmethod.ReturnType.FullName != "System.Void")
-            {
-                if ((returnvar is VBox) == false)
-                {
-                    var type = ValueOnStack.MakeVBox(_clrmethod.ReturnType);
-                    if (type != null)
-                    {
-                        type.SetDirect(returnvar);
-                        returnvar = type;
-                    }
-                }
-                stackCalc.Push(returnvar);
-            }
-
-            else if (_this is RefObj && _clrmethod.Name == ".ctor")
-            {
-                //如果这里有发生程序类型,脚本类型的cross,就需要特别处理
-                (_this as RefObj).Set(returnvar);
-            }
-            _codepos++;
-            return;
-
-        }
-        //栈操作
-        public void Nop()
-        {
-            _codepos++;
-        }
-        public void Dup()
-        {
-            var v = stackCalc.Peek();
-            if (v is VBox)
-            {
-                v = (v as VBox).Clone();
-            }
-            stackCalc.Push(v);
-            _codepos++;
-        }
-        public void Pop()
-        {
-            var v = stackCalc.Pop() as VBox;
-            ValueOnStack.UnUse(v);
-            _codepos++;
-        }
-        //流程控制
-        public void Ret()
-        {
-            _codepos++;
-        }
-        public void Box(ICLRType type)
-        {
-            object obj = stackCalc.Pop();
-            VBox box = obj as VBox;
-            if (type.TypeForSystem.IsEnum)
-            {
-                int ev = 0;
-                if (box != null) ev = box.v32;
-                else ev = (int)obj;
-                obj = Enum.ToObject(type.TypeForSystem, ev);
-            }
-            else
-            {
-                if (box != null)
-                {
-                    var tcode = ValueOnStack.GetTypeCode(type.TypeForSystem);
-                    if (tcode == box.type)
-                    {
-
-
-                        obj = box.BoxDefine();
-                        ValueOnStack.UnUse(box);
-
-                    }
-                    else
-                    {
-                        var nbox = ValueOnStack.MakeVBox(tcode);
-                        nbox.Set(box);
-                        obj = nbox.BoxDefine();
-                        ValueOnStack.UnUse(nbox);
-                        ValueOnStack.UnUse(box);
-                    }
-                }
-            }
-            stackCalc.Push(obj);
-            _codepos++;
-        }
-        public void Unbox()
-        {
-            object obj = stackCalc.Pop();
-            var box = ValueOnStack.MakeVBox(obj.GetType());
-            if (box != null)
-            {
-                box.SetDirect(obj);
-                stackCalc.Push(box);
-            }
-            else
-            {
-                stackCalc.Push(obj);
-            }
-            _codepos++;
-        }
-        public void Unbox_Any()
-        {
-            object obj = stackCalc.Pop();
-            var box = ValueOnStack.MakeVBox(obj.GetType());
-            if (box != null)
-            {
-                box.SetDirect(obj);
-                stackCalc.Push(box);
-            }
-            else
-            {
-                stackCalc.Push(obj);
-            }
-
-            _codepos++;
-        }
-        public void Br(int addr_index)
-        {
-            _codepos = addr_index;// _body.addr[pos.Offset];
-        }
-        public void Leave(int addr_index)
-        {
-            stackCalc.Clear();
-            _codepos = addr_index;// _body.addr[addr];
-        }
-        //public void Leave_AddrIndex(int addr_index)
-        //{
-        //    stackCalc.Clear();
-        //    _codepos = addr_index;
-        //}
-        public void Brtrue(int addr_index)
-        {
-            object obj = stackCalc.Pop();
-            bool b = false;
-            if (obj != null)
-            {
-                if (obj is VBox)
-                {
-                    VBox box = obj as VBox;
-                    b = box.ToBool();
-                    ValueOnStack.UnUse(box);
-                }
-                else if (obj.GetType().IsClass)
-                {
-                    b = true;
-                }
-                else if (obj is bool)
-                {
-                    b = (bool)obj;
-                }
-                else
-                {
-                    b = Convert.ToDecimal(obj) > 0;
-                }
-            }
-            //decimal b = Convert.ToDecimal(stackCalc.Pop());
-            //bool b = (bool)stackCalc.Pop();
-            if (b)
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-            }
-            else
-            {
-                _codepos++;
-            }
-        }
-        public void Brfalse(int addr_index)
-        {
-            object obj = stackCalc.Pop();
-            bool b = false;
-            if (obj != null)
-            {
-                if (obj is VBox)
-                {
-                    VBox box = obj as VBox;
-                    b = box.ToBool();
-                    ValueOnStack.UnUse(box);
-                }
-                else if (obj.GetType().IsClass)
-                {
-                    b = true;
-                }
-                else if (obj is bool)
-                {
-                    b = (bool)obj;
-                }
-                else
-                {
-                    b = Convert.ToDecimal(obj) > 0;
-                }
-            }
-            if (!b)
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-            }
-            else
-            {
-                _codepos++;
-            }
-        }
-        //条件跳转
-        public void Beq(int addr_index)
-        {
-            object o2 = stackCalc.Pop();
-            object o1 = stackCalc.Pop();
-            if (o1 is VBox && o2 is VBox)
-            {
-                VBox n2 = o2 as VBox;
-                VBox n1 = o1 as VBox;
-
-                if (n1.logic_eq(n2))
-                {
-                    _codepos = addr_index;// _body.addr[pos.Offset];
-                }
-                else
-                {
-                    _codepos++;
-                }
-                ValueOnStack.UnUse(n1);
-                ValueOnStack.UnUse(n2);
-            }
-            else if (o1 is int)
-            {
-
-                int lv = (int)o1;
-                int rv = 0;
-                if (o2 is int)
-                    rv = (int)o2;
-                else if (o2 is VBox)
-                {
-                    rv = (o2 as VBox).v32;
-                    ValueOnStack.UnUse(o2 as VBox);
-
-                }
-                else
-                    throw new Exception("what a fuck");
-
-                if (lv == rv)
-                {
-                    _codepos = addr_index;// _body.addr[pos.Offset];
-                }
-                else
-                {
-                    _codepos++;
-                }
-            }
-            else
-            {
-                throw new Exception("what a fuck");
-            }
-
-        }
-        public void Bne(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_ne(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Bne_Un(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_ne_Un(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Bge(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_ge(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Bge_Un(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_ge_Un(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Bgt(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_gt(n2))
-            {
-                _codepos = addr_index;//_body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Bgt_Un(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_gt_Un(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Ble(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_le(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Ble_Un(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_le_Un(n2))
-            {
-                _codepos = addr_index;//_body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Blt(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_lt(n2))
-            {
-                _codepos = addr_index;//_body.addr[pos.Offset];
-
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Blt_Un(int addr_index)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-            if (n1.logic_lt_Un(n2))
-            {
-                _codepos = addr_index;// _body.addr[pos.Offset];
-            }
-            else
-            {
-                _codepos++;
-            }
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-
-        }
-        //加载常量
-        public void Ldc_I4(int v)//int32
-        {
-            VBox box = ValueOnStack.MakeVBox(NumberType.INT32);
-            box.v32 = v;
-            stackCalc.Push(box);
-            _codepos++;
-
-        }
-
-        public void Ldc_I8(Int64 v)//int64
-        {
-            VBox box = ValueOnStack.MakeVBox(NumberType.INT64);
-            box.v64 = v;
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldc_R4(float v)
-        {
-            VBox box = ValueOnStack.MakeVBox(NumberType.FLOAT);
-            box.vDF = v;
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldc_R8(double v)
-        {
-            VBox box = ValueOnStack.MakeVBox(NumberType.DOUBLE);
-            box.vDF = v;
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        //放进变量槽
-        public void Stloc(int pos)
-        {
-            object v = stackCalc.Pop();
-            while (slotVar.Count <= pos)
-            {
-                slotVar.Add(null);
-            }
-            if (v != null && v.GetType().IsValueType)
-            {
-                var mm = v.GetType().GetMethod("MemberwiseClone", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
-                slotVar[pos] = mm.Invoke(v, null);
-            }
-            else
-            {
-                VBox box = slotVar[pos] as VBox;
-                if (box == null)
-                {
-                    slotVar[pos] = v;
-                }
-                else
-                {
-                    if (v is VBox)
-                    {
-                        box.Set(v as VBox);
-                    }
-                    else
-                        box.SetDirect(v);
-                }
-            }
-            if (v is VBox)
-            {
-                ValueOnStack.UnUse(v as VBox);
-            }
-            _codepos++;
-        }
-        //拿出变量槽
-        public void Ldloc(int pos)
-        {
-            var obj = slotVar[pos];
-            VBox b = obj as VBox;
-            if (b != null)
-            {
-                obj = b.Clone();
-            }
-            stackCalc.Push(obj);
-            _codepos++;
-        }
-        public enum RefType
-        {
-            loc,//本地变量槽
-            arg,//参数槽
-            field,//成员变量
-            Array,
-        }
-        public class RefObj
-        {
-            public StackFrame frame;
-            public int pos;
-            public RefType type;
-            //public ICLRType _clrtype;
-            public IField _field;
-            public object _this;
-            public Array _array;
-            public RefObj(StackFrame frame, int pos, RefType type)
-            {
-                this.frame = frame;
-                this.pos = pos;
-                this.type = type;
-            }
-            public RefObj(IField field, object _this)
-            {
-                this.type = RefType.field;
-                //this._clrtype = type;
-                this._field = field;
-                this._this = _this;
-            }
-            public RefObj(Array array, int index)
-            {
-                this.type = RefType.Array;
-                this._array = array;
-                this.pos = index;
-            }
-            public void Set(object obj)
-            {
-                if (type == RefType.arg)
-                {
-                    frame._params[pos] = obj;
-                }
-                else if (type == RefType.loc)
-                {
-                    while (frame.slotVar.Count <= pos)
-                    {
-                        frame.slotVar.Add(null);
-                    }
-                    frame.slotVar[pos] = obj;
-                }
-                else if (type == RefType.field)
-                {
-                    _field.Set(_this, obj);
-                }
-                else if (type == RefType.Array)
-                {
-                    _array.SetValue(obj, pos);
-                }
-
-            }
-            public object Get()
-            {
-                if (type == RefType.arg)
-                {
-                    return frame._params[pos];
-                }
-                else if (type == RefType.loc)
-                {
-                    while (frame.slotVar.Count <= pos)
-                    {
-                        frame.slotVar.Add(null);
-                    }
-                    return frame.slotVar[pos];
-                }
-                else if (type == RefType.field)
-                {
-                    return _field.Get(_this);
-                }
-                else if (type == RefType.Array)
-                {
-                    return _array.GetValue(pos);
-                }
-                return null;
-            }
-
-        }
-
-        //拿出变量槽的引用
-
-        public void Ldloca(int pos)
-        {
-            stackCalc.Push(new RefObj(this, pos, RefType.loc));
-            _codepos++;
-        }
-
-        public void Ldstr(string text)
-        {
-            stackCalc.Push(text);
-            _codepos++;
-        }
-
-        //加载参数(还得处理static,il静态非静态不一样,成员参数0是this)
-        public void Ldarg(int pos)
-        {
-            object obj = null;
-            if (_params != null)
-                obj = _params[pos];
-            VBox b = obj as VBox;
-            if (b != null)
-            {
-                obj = b.Clone();
-            }
-            stackCalc.Push(obj);
-            _codepos++;
-        }
-        public void Ldarga(int pos)
-        {
-            stackCalc.Push(new RefObj(this, pos, RefType.arg));
-            _codepos++;
-        }
-        //逻辑计算
-
-        public void Ceq()
-        {
-            var obj2 = stackCalc.Pop();
-            var obj1 = stackCalc.Pop();
-            VBox n2 = obj2 as VBox;
-            VBox n1 = obj1 as VBox;
-            bool beq = false;
-            if (obj1 == null || obj2 == null)
-            {
-                beq = obj1 == obj2;
-            }
-            else if (n1 == null || n2 == null)
-
-            {
-                if (n1 != null)
-                {
-                    n2 = ValueOnStack.MakeVBox(obj2.GetType());
-                    n2.SetDirect(obj2);
-                    beq = n1.logic_eq(n2);
-                }
-                else if (n2 != null)
-                {
-                    n1 = ValueOnStack.MakeVBox(obj1.GetType());
-                    n1.SetDirect(obj1);
-                    beq = n1.logic_eq(n2);
-                }
-                else
-                {
-                    if (obj1 != null)
-                        beq = obj1.Equals(obj2);
-                    else
-                        beq = (obj1 == obj2);
-                }
-            }
-            else
-            {
-                beq = n1.logic_eq(n2);
-            }
-
-
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-            stackCalc.Push(ValueOnStack.MakeVBoxBool(beq));
-            _codepos++;
-        }
-        public void Cgt()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-
-
-            stackCalc.Push(ValueOnStack.MakeVBoxBool(n1.logic_gt(n2)));
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-            _codepos++;
-        }
-        public void Cgt_Un()
-        {
-            object _n2 = stackCalc.Pop();
-            object _n1 = stackCalc.Pop();
-            if (_n2 == null)
-            {
-                stackCalc.Push(ValueOnStack.MakeVBoxBool(_n1 != null));
-                _codepos++;
-            }
-            else
-            {
-                VBox n2 = GetVBox(_n2);
-                VBox n1 = GetVBox(_n1);
-
-                stackCalc.Push(ValueOnStack.MakeVBoxBool(n1.logic_gt_Un(n2)));
-                ValueOnStack.UnUse(n1);
-                ValueOnStack.UnUse(n2);
-                _codepos++;
-            }
-        }
-        public void Clt()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            stackCalc.Push(ValueOnStack.MakeVBoxBool(n1.logic_lt(n2)));
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-            _codepos++;
-        }
-        public void Clt_Un()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            stackCalc.Push(ValueOnStack.MakeVBoxBool(n1.logic_lt_Un(n2)));
-            ValueOnStack.UnUse(n1);
-            ValueOnStack.UnUse(n2);
-            _codepos++;
-        }
-        public void Ckfinite()
-        {
-            object n1 = stackCalc.Pop();
-            if (n1 is float)
-            {
-                float v = (float)n1;
-                stackCalc.Push(float.IsInfinity(v) || float.IsNaN(v) ? 1 : 0);
-            }
-            else
-            {
-                double v = (double)n1;
-                stackCalc.Push(double.IsInfinity(v) || double.IsNaN(v) ? 1 : 0);
-            }
-            _codepos++;
-        }
-        //算术操作
-        public void Add()
-        {
-            VBox n2 = GetVBox(stackCalc.Pop());
-            object n1 = stackCalc.Pop();
-            if (n1 is VBox)
-            {
-                VBox n_1 = n1 as VBox;
-                n_1.Add(n2);
-                stackCalc.Push(n_1);
-            }
-            else
-            {
-                VBox n_1 = GetVBox(n1);
-                n_1.Add(n2);
-                stackCalc.Push(n_1.BoxDefine());
-                ValueOnStack.UnUse(n_1);
-
-            }
-            ValueOnStack.UnUse(n2);
-            _codepos++;
-        }
-
-        //Modify by hjx
-        public VBox GetVBox(object obj)
-        {
-            VBox box = null;
-            if (obj is VBox)
-            {
-                box = obj as VBox;
-            }
-            else
-            {
-                box = ValueOnStack.MakeVBox(obj.GetType());
-                box.SetDirect(obj);
-            }
-            return box;
-        }
-
-
-
-
-
-
-
-
-
-
-        public void Sub()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            object n1 = stackCalc.Pop();
-            if (n1 is VBox)
-            {
-                VBox n_1 = n1 as VBox;
-                n_1.Sub(n2);
-                stackCalc.Push(n_1);
-            }
-            else
-            {
-                VBox n_1 = ValueOnStack.MakeVBox(n1.GetType());
-                n_1.SetDirect(n1);
-                n_1.Sub(n2);
-                stackCalc.Push(n_1.BoxDefine());
-                ValueOnStack.UnUse(n_1);
-
-            }
-            ValueOnStack.UnUse(n2);
-
-            _codepos++;
-        }
-        public void Mul()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Mul(n2);
-            stackCalc.Push(n1);
-            ValueOnStack.UnUse(n2);
-
-            _codepos++;
-        }
-        public void Div()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Div(n2);
-            stackCalc.Push(n1);
-            ValueOnStack.UnUse(n2);
-
-            _codepos++;
-        }
-        public void Div_Un()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Div(n2);//!!! _un
-            stackCalc.Push(n1);
-            ValueOnStack.UnUse(n2);
-
-            _codepos++;
-        }
-        public void Rem()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Mod(n2);
-            stackCalc.Push(n1);
-            ValueOnStack.UnUse(n2);
-
-            _codepos++; ;
-        }
-        public void Rem_Un()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Mod(n2);//!!!_un
-            stackCalc.Push(n1);
-            ValueOnStack.UnUse(n2);
-
-            _codepos++;
-        }
-        public void Neg()
-        {
-
-            object n1 = stackCalc.Pop();
-            if (n1 is VBox)
-            {
-                VBox v = n1 as VBox;
-                var obj = v.Clone();
-                obj.Neg();
-                stackCalc.Push(obj);
-                ValueOnStack.UnUse(v);
-
-
-            }
-            else if (n1 is int)
-            {
-                stackCalc.Push(-(int)n1);
-            }
-            else if (n1 is Int64)
-            {
-                stackCalc.Push(-(Int64)n1);
-            }
-
-            else
-            {
-                stackCalc.Push(n1);
-            }
-
-            _codepos++;
-        }
-        //转换
-        public void Conv_I1()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.SBYTE));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((sbyte)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_U1()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.BYTE));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((byte)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_I2()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT16));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((Int16)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_U2()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT16));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((UInt16)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_I4()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT32));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((Int32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_U4()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT32));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((UInt32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_I8()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT64));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((Int64)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_U8()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT64));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((UInt64)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_I()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT32));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((Int32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_U()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT32));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((UInt32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_R4()
-        {
-
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.FLOAT));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                if (num1.GetType() == typeof(double))
-                {
-                    //Modify by hjx
-                    stackCalc.Push((float)(double)num1);
-                }
-                else
-                {
-                    stackCalc.Push((float)num1);
-                }
-            }
-            _codepos++;
-        }
-        public void Conv_R8()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.DOUBLE));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((double)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_R_Un()
-        {
-
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.FLOAT));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((float)num1);
-            }
-            _codepos++;
-        }
-
-        ////数组
-        public void NewArr(ThreadContext context, Type type)
-        {
-            //string typename = type.FullName + "[]";
-            //var _type = context.environment.GetType(typename, type.Module);
-            //MethodParamList tlist = MethodParamList.MakeList_OneParam_Int(context.environment);
-            //var m = _type.GetMethod(".ctor", tlist);
-            var objv = stackCalc.Pop();
-
-
-            if (objv is VBox)
-            {
-                ValueOnStack.UnUse(objv as VBox);
-                objv = (objv as VBox).BoxDefine();
-            }
-            var array = Array.CreateInstance(type, (int)objv);
-            stackCalc.Push(array);
-            _codepos++;
-        }
-        public void LdLen()
-        {
-            var obj = stackCalc.Pop();
-            Array a = obj as Array;
-            var vbox = ValueOnStack.MakeVBox(NumberType.INT32);
-            vbox.v32 = a.Length;
-            stackCalc.Push(vbox);
-            _codepos++;
-        }
-        public void Ldelema(object obj)
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            Array array = stackCalc.Pop() as Array;
-
-
-            stackCalc.Push(new RefObj(array, index));
-            _codepos++;
-            //_codepos++;
-        }
-        public void Ldelem_I1()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var _array = stackCalc.Pop();
-            if (_array is sbyte[])
-            {
-                sbyte[] array = _array as sbyte[]; ;
-                var box = ValueOnStack.MakeVBox(NumberType.SBYTE);
-                box.v32 = array[index];
-                stackCalc.Push(box);
-            }
-            else if (_array is bool[])
-            {
-                bool[] array = _array as bool[]; ;
-                var box = ValueOnStack.MakeVBox(NumberType.BOOL);
-                box.v32 = array[index] == true ? 1 : 0;
-                stackCalc.Push(box);
-            }
-            else
-            {
-                throw new Exception("not support.this array i1");
-            }
-
-            _codepos++;
-        }
-        public void Ldelem_U1()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            object obj = stackCalc.Pop();
-            if (obj is byte[])
-            {
-                byte[] array = obj as byte[];
-                var box = ValueOnStack.MakeVBox(NumberType.BYTE);
-                box.v32 = array[index];
-                stackCalc.Push(box);
-                _codepos++;
-            }
-            else if (obj is bool[])
-            {
-                bool[] array = obj as bool[];
-                var box = ValueOnStack.MakeVBox(NumberType.BOOL);
-                box.v32 = array[index] ? 1 : 0;
-                stackCalc.Push(box);
-                _codepos++;
-            }
-        }
-
-        public void Ldelem_I2()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            Int16[] array = stackCalc.Pop() as Int16[];
-            var box = ValueOnStack.MakeVBox(NumberType.INT16);
-            box.v32 = array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldelem_U2()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var _array = stackCalc.Pop();
-            if (_array is UInt16[])
-            {
-                UInt16[] array = _array as UInt16[];
-                var box = ValueOnStack.MakeVBox(NumberType.UINT16);
-                box.v32 = array[index];
-                stackCalc.Push(box);
-            }
-            else
-            {
-                char[] array = _array as char[];
-                var box = ValueOnStack.MakeVBox(NumberType.CHAR);
-                box.v32 = array[index];
-                stackCalc.Push(box);
-            }
-
-            _codepos++;
-        }
-        public void Ldelem_I4()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            int[] array = stackCalc.Pop() as int[];
-            var box = ValueOnStack.MakeVBox(NumberType.INT32);
-            box.v32 = array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldelem_U4()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            uint[] array = stackCalc.Pop() as uint[];
-            var box = ValueOnStack.MakeVBox(NumberType.UINT32);
-            box.v32 = (int)array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-
-        public void Ldelem_I8()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var obj = stackCalc.Pop();
-            if (obj is Int64[])
-            {
-                Int64[] array = obj as Int64[];
-                var box = ValueOnStack.MakeVBox(NumberType.INT64);
-                box.v64 = array[index];
-                stackCalc.Push(box);
-            }
-            else
-            {
-                UInt64[] array = obj as UInt64[];
-                var box = ValueOnStack.MakeVBox(NumberType.INT64);
-                box.v64 = (long)array[index];
-                stackCalc.Push(box);
-            }
-            _codepos++;
-        }
-        public void Ldelem_I()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            int[] array = stackCalc.Pop() as int[];
-            var box = ValueOnStack.MakeVBox(NumberType.INT32);
-            box.v32 = array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldelem_R4()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            float[] array = stackCalc.Pop() as float[];
-            var box = ValueOnStack.MakeVBox(NumberType.FLOAT);
-            box.vDF = array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldelem_R8()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            double[] array = stackCalc.Pop() as double[];
-            var box = ValueOnStack.MakeVBox(NumberType.DOUBLE);
-            box.vDF = array[index];
-            stackCalc.Push(box);
-            _codepos++;
-        }
-        public void Ldelem_Ref()
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            Array array = stackCalc.Pop() as Array;
-            stackCalc.Push(array.GetValue(index));
-            _codepos++;
-        }
-        public void Ldelem_Any(object obj)
-        {
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            Array array = stackCalc.Pop() as Array;
-
-            stackCalc.Push(array.GetValue(index));
-            _codepos++;
-        }
-        public void Stelem_I()
-        {
-            Stelem_I4();
-            //var obj = stackCalc.Pop();
-            //int value = 0;
-            //if (obj is VBox)
-            //{
-            //    value = (obj as VBox).ToInt();
-            //}
-            //else
-            //{
-            //    value = (Int32)obj;
-            //}
-            //var indexobj = stackCalc.Pop();
-            //int index = 0;
-            //if ((indexobj is VBox))
-            //{
-            //    index = (indexobj as VBox).ToInt();
-            //}
-            //else
-            //{
-            //    index = (int)indexobj;
-            //}
-            //var array = stackCalc.Pop() as Int32[];
-            //array[index] = value;
-            //_codepos++;
-        }
-        public void Stelem_I1()
-        {
-            var obj = stackCalc.Pop();
-            int value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToInt();
-                ValueOnStack.UnUse(obj as VBox);
-            }
-            else
-            {
-                value = (sbyte)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var array = stackCalc.Pop();
-            if (array is sbyte[])
-            {
-                (array as sbyte[])[index] = (sbyte)value;
-            }
-            else if (array is byte[])
-            {
-                (array as byte[])[index] = (byte)value;
-            }
-            else if (array is bool[])
-            {
-                (array as bool[])[index] = value > 0;
-
-            }
-
-            _codepos++;
-        }
-        public void Stelem_I2()
-        {
-            var obj = stackCalc.Pop();
-            int value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToInt();
-                ValueOnStack.UnUse(obj as VBox);
-            }
-            else
-            {
-                value = (Int16)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var array = stackCalc.Pop();
-            if (array is char[])
-            {
-                (array as char[])[index] = (char)value;
-            }
-            else if (array is Int16[])
-            {
-                (array as Int16[])[index] = (Int16)value;
-            }
-            else if (array is UInt16[])
-            {
-                (array as UInt16[])[index] = (UInt16)value;
-            }
-
-            _codepos++;
-        }
-        public void Stelem_I4()
-        {
-            var obj = stackCalc.Pop();
-            int value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToInt();
-                ValueOnStack.UnUse(obj as VBox);
-            }
-            else
-            {
-                value = (Int32)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var _array = stackCalc.Pop();
-            if (_array is Int32[])
-            {
-
-                var array = _array as Int32[];
-                array[index] = (Int32)value;
-
-            }
-            else if (_array is UInt32[])
-            {
-                var array = _array as UInt32[];
-                array[index] = (UInt32)value;
-
-            }
-            _codepos++;
-        }
-        public void Stelem_I8()
-        {
-            var obj = stackCalc.Pop();
-            long value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToInt64();
-                ValueOnStack.UnUse(obj as VBox);
-            }
-            else
-            {
-                value = (Int64)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var _array = stackCalc.Pop();
-            if (_array is Int64[])
-            {
-
-                var array = _array as Int64[];
-                array[index] = (Int64)value;
-
-            }
-            else if (_array is UInt64[])
-            {
-                var array = _array as UInt64[];
-                array[index] = (UInt64)value;
-
-            }
-            _codepos++;
-        }
-        public void Stelem_R4()
-        {
-            var obj = stackCalc.Pop();
-            float value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToFloat();
-                ValueOnStack.UnUse(obj as VBox);
-
-            }
-            else
-            {
-                value = (float)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var array = stackCalc.Pop() as float[];
-            array[index] = value;
-            _codepos++;
-        }
-        public void Stelem_R8()
-        {
-            var obj = stackCalc.Pop();
-            double value = 0;
-            if (obj is VBox)
-            {
-                value = (obj as VBox).ToDouble();
-                ValueOnStack.UnUse(obj as VBox);
-
-            }
-            else
-            {
-                value = (double)obj;
-            }
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var array = stackCalc.Pop() as double[];
-            array[index] = value;
-            _codepos++;
-        }
-        public void Stelem_Ref()
-        {
-            var value = stackCalc.Pop();
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if ((indexobj is VBox))
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-
-            }
-            else
-            {
-                index = (int)indexobj;
-            }
-            var array = stackCalc.Pop() as Object[];
-
-            array[index] = value;
-            _codepos++;
-        }
-
-        public void Stelem_Any()
-        {
-            var value = stackCalc.Pop();
-            var indexobj = stackCalc.Pop();
-            int index = 0;
-            if (indexobj is VBox)
-            {
-                index = (indexobj as VBox).ToInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-
-            }
-            else index = (int)indexobj;
-            var array = stackCalc.Pop() as Array;
-            array.SetValue(value, index);
-            _codepos++;
-        }
-
-        //寻址类
-        public void NewObj(ThreadContext context, IMethod _clrmethod)
-        {
-            //MethodParamList list = new MethodParamList(context.environment, method);
-            object[] _pp = null;
-            bool bCLR = _clrmethod is IMethod_Sharp;
-            if (_clrmethod.ParamList != null)
-            {
-                _pp = new object[_clrmethod.ParamList.Count];
-                for (int i = 0; i < _pp.Length; i++)
-                {
-                    int iCallPPos = _pp.Length - 1 - i;
-                    ICLRType pType = _clrmethod.ParamList[iCallPPos];
-                    var pp = stackCalc.Pop();
-                    if (pp is VBox && !bCLR)
-                    {
-                        ValueOnStack.UnUse(pp as VBox);
-                        pp = (pp as VBox).BoxDefine();
-                    }
-                    if ((pp is int) && (pType.TypeForSystem != typeof(int) && pType.TypeForSystem != typeof(object)))
-                    {
-                        var _vbox = ValueOnStack.MakeVBox(pType);
-                        if (_vbox != null)
-                        {
-                            _vbox.SetDirect(pp);
-                            if (bCLR)
-                                pp = _vbox;
-                            else
-                                pp = _vbox.BoxDefine();
-                        }
-                    }
-                    _pp[iCallPPos] = pp;
-                }
-            }
-
-            //var typesys = context.environment.GetType(method.DeclaringType.FullName, method.Module);
-            object returnvar = _clrmethod.Invoke(context, null, _pp);
-
-            stackCalc.Push(returnvar);
-
-            _codepos++;
-        }
-        //public void NewObj(ThreadContext context, Mono.Cecil.MethodReference method)
-        //{
-        //    object[] _pp = null;
-        //    if (method.Parameters.Count > 0)
-        //    {
-        //        _pp = new object[method.Parameters.Count];
-        //        for (int i = 0; i < _pp.Length; i++)
-        //        {
-        //            _pp[_pp.Length - 1 - i] = stackCalc.Pop();
-        //        }
-        //    }
-        //    var typesys = context.environment.GetType(method.DeclaringType.FullName, method.Module);
-
-        //    MethodParamList list = new MethodParamList(context.environment, method);
-
-        //    object returnvar = typesys.GetMethod(method.Name, list).Invoke(context, null, _pp);
-
-        //    stackCalc.Push(returnvar);
-
-
-
-
-        //    _codepos++;
-
-        //}
-        public void Ldfld(ThreadContext context, IField field)
-        {
-            var obj = stackCalc.Pop();
-
-            //var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //ar ff = type.GetField(field.Name);
-            if (obj is RefObj)
-            {
-                obj = (obj as RefObj).Get();
-            }
-            var value = field.Get(obj);
-            VBox box = ValueOnStack.MakeVBox(field.FieldType);
-            if (box != null)
-            {
-                box.SetDirect(value);
-                value = box;
-            }
-            stackCalc.Push(value);
-            //System.Type t =obj.GetType();
-            _codepos++;
-        }
-        public void Ldflda(ThreadContext context, IField field)
-        {
-            var obj = stackCalc.Pop();
-            if (obj is RefObj)
-            {
-                obj = (obj as RefObj).Get();
-            }
-            // var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //var ff = type.GetField(field.Name);
-
-            stackCalc.Push(new RefObj(field, obj));
-
-            _codepos++;
-        }
-        public void Ldsfld(ThreadContext context, IField field)
-        {
-            //var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //var ff = type.GetField(field.Name);
-            var value = field.Get(null);
-            VBox box = ValueOnStack.MakeVBox(field.FieldType);
-            if (box != null)
-            {
-                box.SetDirect(value);
-                value = box;
-            }
-            stackCalc.Push(value);
-            //System.Type t =obj.GetType();
-            _codepos++;
-        }
-        public void Ldsflda(ThreadContext context, IField field)
-        {
-            //var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //var ff = type.GetField(field.Name);
-
-            stackCalc.Push(new RefObj(field, null));
-
-            _codepos++;
-        }
-        public void Stfld(ThreadContext context, IField field)
-        {
-            var value = stackCalc.Pop();
-
-            var obj = stackCalc.Pop();
-            //var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //var ff = type.GetField(field.Name);
-            if (obj is RefObj)
-            {
-                var _this = (obj as RefObj).Get();
-                if (_this == null && !field.isStatic)
-                {
-                    (obj as RefObj).Set(field.DeclaringType.InitObj());
-                }
-                obj = (obj as RefObj).Get();
-            }
-            if (value is VBox)
-            {
-                ValueOnStack.UnUse(value as VBox);
-                value = (value as VBox).BoxDefine();
-            }
-            //else
-            {//某些类型需要转换。。。
-                VBox fbox = ValueOnStack.MakeVBox(field.FieldType);
-                if (fbox != null)
-                {
-                    fbox.SetDirect(value);
-                    value = fbox.BoxDefine();
-                }
-            }
-            field.Set(obj, value);
-            _codepos++;
-        }
-        public void Stsfld(ThreadContext context, IField field)
-        {
-            var value = stackCalc.Pop();
-            //var obj = stackCalc.Pop();
-
-            if (value is VBox)
-            {
-                ValueOnStack.UnUse(value as VBox);
-                value = (value as VBox).BoxDefine();
-            }
-            //var type = context.environment.GetType(field.DeclaringType.FullName, field.Module);
-            //var ff = type.GetField(field.Name);
-            field.Set(null, value);
-
-            _codepos++;
-        }
-        public void Constrained(ThreadContext context, ICLRType obj)
-        {
-
-            _codepos++;
-        }
-        public void Isinst(ThreadContext context, ICLRType _type)
-        {
-            var value = stackCalc.Pop();
-            //var _type = context.environment.GetType(obj.FullName, obj.Module);
-            if (_type.IsInst(value))
-                stackCalc.Push(value);
-            else
-                stackCalc.Push(null);
-            _codepos++;
-        }
-        public void Ldtoken(ThreadContext context, object token)
-        {
-            //string fname = obj.FullName;
-            //string tfname = obj.FieldType.FullName;
-            //var _type = context.environment.GetType(obj.DeclaringType.FullName, obj.Module);
-            //var field = _type.GetField(obj.Name);
-
-            stackCalc.Push(token);
-            _codepos++;
-        }
-
-        public void Conv_Ovf_I1()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.SBYTE));
-                ValueOnStack.UnUse(b);
-            }
-            else
-            {
-                stackCalc.Push((sbyte)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_U1()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.BYTE));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((byte)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_I2()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT16));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int16)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_U2()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT16));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int16)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_I4()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT32));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_U4()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT32));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((UInt32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_I8()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT64));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int64)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_U8()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT64));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int64)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_I()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.INT32));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((Int32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_U()
-        {
-            object num1 = stackCalc.Pop();
-            VBox b = num1 as VBox;
-            if (b != null)
-            {
-                stackCalc.Push(ValueOnStack.Convert(b, NumberType.UINT32));
-                ValueOnStack.UnUse(b);
-
-            }
-            else
-            {
-                stackCalc.Push((UInt32)num1);
-            }
-            _codepos++;
-        }
-        public void Conv_Ovf_I1_Un()
-        {
-            throw new NotImplementedException();
-        }
-
-        public void Conv_Ovf_U1_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_I2_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_U2_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_I4_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_U4_Un()
-        {
-            throw new NotImplementedException();
-        }
-
-        public void Conv_Ovf_I8_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_U8_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_I_Un()
-        {
-            throw new NotImplementedException();
-        }
-        public void Conv_Ovf_U_Un()
-        {
-            throw new NotImplementedException();
-        }
-
-        public void Ldftn(ThreadContext context, IMethod method)
-        {
-            stackCalc.Push(new RefFunc(method, null));
-            //throw new NotImplementedException();
-            _codepos++;
-        }
-        public void Ldvirtftn(ThreadContext context, IMethod method)
-        {
-            object _this = stackCalc.Pop();
-            stackCalc.Push(new RefFunc(method, _this));
-
-            _codepos++;
-        }
-
-        public void Starg(ThreadContext context, int p)
-        {
-            object _this = stackCalc.Pop();
-            if (_this is VBox)
-            {
-                ValueOnStack.UnUse(_this as VBox);
-
-                _this = (_this as VBox).Clone();
-            }
-            this._params[p] = _this;
-            _codepos++;
-            //_codepos++;
-        }
-        //public void Ldarga(ThreadContext context, object obj)
-        //{
-        //    int pos=            (obj as Mono.Cecil.ParameterDefinition).Index;
-        //    stackCalc.Push(new RefObj(this, pos, RefType.arg));
-        //    Type t = obj.GetType();
-        //    //throw new NotImplementedException(t.ToString());
-        //    _codepos++;
-        //}
-        public void Calli(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-
-
-        public void Break(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-
-        public void Ldnull()
-        {
-            stackCalc.Push(null);
-            _codepos++;
-        }
-        public void Jmp(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-
-        public void Switch(ThreadContext context, int[] index)
-        {
-            var indexobj = stackCalc.Pop();
-            uint pos = 0;
-            if (indexobj is VBox)
-            {
-                pos = (indexobj as VBox).ToUInt();
-                ValueOnStack.UnUse(indexobj as VBox);
-            }
-            else if (indexobj is int)
-            {
-                pos = (uint)(int)indexobj;
-            }
-            else
-            {
-                pos = uint.Parse(indexobj.ToString());
-            }
-            if (pos >= index.Length)
-            {
-                _codepos++;
-
-            }
-            else
-            {
-                _codepos = index[pos];
-                //_pos = poss[pos];
-            }
-        }
-        public void Ldind_I1()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_I1:");
-            //_codepos++;
-        }
-        public void Ldind_U1()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_U1:");
-            //_codepos++;
-        }
-        public void Ldind_I2()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_I2:");
-            //_codepos++;
-        }
-        public void Ldind_U2()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_U2:");
-            //_codepos++;
-        }
-        public void Ldind_I4()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_I4:");
-            //_codepos++;
-        }
-        public void Ldind_U4()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_U4:");
-            //_codepos++;
-        }
-        public void Ldind_I8()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_I8:");
-            //_codepos++;
-        }
-        public void Ldind_I()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_I:");
-            //_codepos++;
-        }
-        public void Ldind_R4()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_R4:");
-            //_codepos++;
-        }
-        public void Ldind_R8()
-        {
-            object obje = stackCalc.Pop();
-            if (obje is RefObj)
-            {
-                RefObj _ref = obje as RefObj;
-                object value = _ref.Get();
-                VBox box = ValueOnStack.MakeVBox(value.GetType());
-                box.SetDirect(value);
-                stackCalc.Push(box);
-                _codepos++;
-                return;
-            }
-            throw new Exception("not impl Ldind_R8:");
-            //_codepos++;
-        }
-        public void Ldind_Ref()
-        {
-
-            throw new Exception("not impl Ldind_Ref:");
-            //_codepos++;
-        }
-        public void Stind_Ref(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-            }
-
-            _codepos++;
-        }
-        public void Stind_I1(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void Stind_I2(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void Stind_I4(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void Stind_I8(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void Stind_R4(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void Stind_R8(ThreadContext context, object obj)
-        {
-            var o1 = stackCalc.Pop();
-            var o2 = stackCalc.Pop();
-            if (o2 is RefObj)
-            {
-                (o2 as RefObj).Set(o1 is VBox ? (o1 as VBox).BoxDefine() : o1);
-                ValueOnStack.UnUse(o1 as VBox);
-
-            }
-
-            _codepos++;
-        }
-        public void And()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.And(n2);
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Or()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Or(n2);
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Xor()
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Xor(n2);
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Shl(ThreadContext context, object obj)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.v32 <<= n2.v32;
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-        }
-        public void Shr(ThreadContext context, object obj)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.v32 >>= n2.v32;
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Shr_Un(ThreadContext context, object obj)
-        {
-            VBox n2 = stackCalc.Pop() as VBox;
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.v32 >>= n2.v32;
-            stackCalc.Push(n1);
-            _codepos++;
-
-            ValueOnStack.UnUse(n2);
-
-        }
-        public void Not()
-        {
-
-            VBox n1 = stackCalc.Pop() as VBox;
-            n1.Not();
-            stackCalc.Push(n1);
-            _codepos++;
-
-
-        }
-        public void Cpobj(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Ldobj(ThreadContext context, object obj)
-        {
-            var pos = stackCalc.Pop() as RefObj;
-
-            stackCalc.Push(pos.Get());
-
-            _codepos++;
-        }
-        public void Castclass(ThreadContext context, ICLRType _type)
-        {
-            if (_type is ICLRType_System)
-            {
-                var obj = stackCalc.Peek();
-                if (obj != null)
-                {
-                    var ssypt = (_type as ICLRType_System).TypeForSystem;
-                    var otype = obj.GetType();
-
-                    if (otype != ssypt && obj.GetType().IsSubclassOf(ssypt) == false)
-                    {
-                        throw new Exception("不可转换");
-                    }
-
-
-                }
-            }
-
-
-            //throw new NotImplementedException(t.ToString());
-            _codepos++;
-        }
-        public void Throw(ThreadContext context, object obj)
-        {
-            Exception exc = stackCalc.Pop() as Exception;
-            throw exc;
-            //_codepos++;
-        }
-        public void Stobj(ThreadContext context, object obj)
-        {
-            var v = stackCalc.Pop();
-            var addr = stackCalc.Pop() as RefObj;
-            addr.Set(v);
-            _codepos++;
-        }
-        public void Refanyval(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Mkrefany(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-
-        public void Add_Ovf(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Add_Ovf_Un(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Mul_Ovf(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Mul_Ovf_Un(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Sub_Ovf(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Sub_Ovf_Un(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Endfinally(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Stind_I(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Arglist(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-
-        public void Localloc(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Endfilter(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Unaligned(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Volatile()
-        {
-            _codepos++;
-        }
-        //ThreadContext context, object obj)
-        //{
-        //    Type t = obj.GetType();
-        //    throw new NotImplementedException(t.ToString());
-        //    //_codepos++;
-        //}
-        public void Tail(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Initobj(ThreadContext context, ICLRType _type)
-        {
-            RefObj _this = stackCalc.Pop() as RefObj;
-
-            //var typesys = context.environment.GetType(method.DeclaringType.FullName, method.Module);
-            var _object = _type.InitObj();
-
-            _this.Set(_object);
-
-            _codepos++;
-        }
-        public void Cpblk(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Initblk(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void No(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Rethrow(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Sizeof(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Refanytype(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-        public void Readonly(ThreadContext context, object obj)
-        {
-            Type t = obj.GetType();
-            throw new NotImplementedException(t.ToString());
-            //_codepos++;
-        }
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/StackFrame.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 838bbff288387bf45b27e788d3ab4dab
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 1636
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/ValueOnStack.cs

@@ -1,1636 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    //栈上值类型,拆箱,装箱转换非常频繁,需要处理一下。
-    //
-    public class ValueOnStack
-    {
-        static Dictionary<Type, NumberType> typecode = null;
-        public static NumberType GetTypeCode(Type type)
-        {
-            if (typecode == null)
-            {
-                typecode = new Dictionary<Type, NumberType>();
-                //typecode[null] = 0;
-                typecode[typeof(bool)] = NumberType.BOOL;
-                typecode[typeof(sbyte)] = NumberType.SBYTE;
-                typecode[typeof(byte)] = NumberType.BYTE;
-                typecode[typeof(Int16)] = NumberType.INT16;
-                typecode[typeof(UInt16)] = NumberType.UINT16;
-                typecode[typeof(Int32)] = NumberType.INT32;
-                typecode[typeof(UInt32)] = NumberType.UINT32;
-                typecode[typeof(Int64)] = NumberType.INT64;
-                typecode[typeof(UInt64)] = NumberType.UINT64;
-                typecode[typeof(float)] = NumberType.FLOAT;
-                typecode[typeof(double)] = NumberType.DOUBLE;
-                typecode[typeof(IntPtr)] = NumberType.INTPTR;
-                typecode[typeof(UIntPtr)] = NumberType.UINTPTR;
-                typecode[typeof(decimal)] = NumberType.DECIMAL;
-                typecode[typeof(char)] = NumberType.CHAR;
-
-            }
-            if (type.IsEnum) return NumberType.ENUM;
-            NumberType t = NumberType.IsNotNumber;
-            typecode.TryGetValue(type, out t);
-            return t;
-        }
-        ////valuetype
-        //        public NumberType TypeOnDef;
-        //        public NumberOnStack TypeOnStack;
-        //        public IBox box;
-        //public static IBox Make(ICLRType type)
-        //{
-        //    return Make(type.TypeForSystem);
-
-        //}
-        public static VBox MakeVBox(ICLRType type)
-        {
-            if (type == null) return null;
-            return MakeVBox(type.TypeForSystem);
-        }
-        //public static IBox MakeBool(bool b)
-        //{
-        //    BoxInt32 box = Make(NumberType.BOOL) as BoxInt32;
-        //    box.value = b ? 1 : 0;
-        //    return box;
-        //}
-        public static VBox MakeVBoxBool(bool b)
-        {
-            VBox box = MakeVBox(NumberType.BOOL);
-            box.v32 = b ? 1 : 0;
-            return box;
-        }
-        //public static IBox Make(System.Type type)
-        //{
-        //    NumberType code = GetTypeCode(type);
-        //    return Make(code);
-        //}
-
-        public static VBox MakeVBox(System.Type type)
-        {
-            NumberType code = GetTypeCode(type);
-            return MakeVBox(code);
-        }
-        //public static IBox Make(NumberType code)
-        //{
-
-        //    switch (code)
-        //    {
-        //        case NumberType.BOOL:
-        //        case NumberType.SBYTE:
-        //        case NumberType.BYTE:
-        //        case NumberType.CHAR:
-        //        case NumberType.INT16:
-        //        case NumberType.UINT16:
-        //        case NumberType.INT32:
-        //        case NumberType.UINT32:
-        //            if (unusedInt32.Count > 0)
-        //            {
-        //                var b = unusedInt32.Dequeue();
-        //                b.type = code;
-        //                return b;
-        //            }
-        //            else
-        //                return new BoxInt32(code);
-        //        case NumberType.INT64:
-        //        case NumberType.UINT64:
-        //            if (unusedInt64.Count > 0)
-        //            {
-        //                var b = unusedInt64.Dequeue();
-        //                b.type = code;
-        //                return b;
-        //            }
-        //            else
-        //                return new BoxInt64(code);
-        //        case NumberType.FLOAT:
-        //        case NumberType.DOUBLE:
-        //            if (unusedIntFL.Count > 0)
-        //            {
-        //                var b = unusedIntFL.Dequeue();
-        //                b.type = code;
-        //                return b;
-        //            }
-        //            else
-        //                return new BoxDouble(code);
-        //        default:
-        //            return null;
-        //    }
-
-        //}
-        public static VBox MakeVBox(NumberType code)
-        {
-
-            if (unusedVBox == null)
-                unusedVBox = new Queue<VBox>();
-            switch (code)
-            {
-                case NumberType.BOOL:
-                case NumberType.SBYTE:
-                case NumberType.BYTE:
-                case NumberType.CHAR:
-                case NumberType.INT16:
-                case NumberType.UINT16:
-                case NumberType.INT32:
-                case NumberType.UINT32:
-                case NumberType.ENUM:
-                    if (unusedVBox.Count > 0)
-                    {
-                        var b = unusedVBox.Dequeue();
-                        b.typeStack = NumberOnStack.Int32;
-                        b.type = code;
-                        b.unuse = false;
-                        return b;
-                    }
-                    return new VBox(NumberOnStack.Int32, code);
-                case NumberType.INT64:
-                case NumberType.UINT64:
-                    if (unusedVBox.Count > 0)
-                    {
-                        var b = unusedVBox.Dequeue();
-                        b.typeStack = NumberOnStack.Int64;
-                        b.type = code;
-                        b.unuse = false;
-                        return b;
-                    }
-                    return new VBox(NumberOnStack.Int64, code);
-                case NumberType.FLOAT:
-                case NumberType.DOUBLE:
-                    if (unusedVBox.Count > 0)
-                    {
-                        var b = unusedVBox.Dequeue();
-                        b.typeStack = NumberOnStack.Double;
-                        b.type = code;
-                        b.unuse = false;
-                        return b;
-                    }
-                    return new VBox(NumberOnStack.Double, code);
-                default:
-                    return null;
-            }
-
-        }
-        //public static IBox Convert(IBox box, NumberType type)
-        //{
-        //    switch (type)
-        //    {
-        //        case NumberType.BOOL:
-        //        case NumberType.SBYTE:
-        //        case NumberType.BYTE:
-        //        case NumberType.CHAR:
-        //        case NumberType.INT16:
-        //        case NumberType.UINT16:
-        //        case NumberType.INT32:
-        //        case NumberType.UINT32:
-        //            {
-        //                if (box is BoxInt32) return box;
-        //                BoxInt32 v32 = ValueOnStack.Make(type) as BoxInt32;
-        //                BoxInt64 b64 = box as BoxInt64;
-        //                BoxDouble bdb = box as BoxDouble;
-        //                if (b64 != null)
-        //                    v32.value = (int)b64.value;
-        //                else
-        //                    v32.value = (int)bdb.value;
-        //                return v32;
-        //            }
-        //        case NumberType.INT64:
-        //        case NumberType.UINT64:
-        //            {
-        //                if (box is BoxInt64) return box;
-        //                BoxInt64 v64 = ValueOnStack.Make(type) as BoxInt64;
-        //                BoxInt32 b32 = box as BoxInt32;
-        //                BoxDouble bdb = box as BoxDouble;
-        //                if (b32 != null)
-        //                    v64.value = b32.value;
-        //                else
-        //                    v64.value = (Int64)bdb.value;
-        //                return v64;
-        //            }
-        //        case NumberType.FLOAT:
-        //        case NumberType.DOUBLE:
-        //            {
-        //                if (box is BoxDouble) return box;
-        //                BoxDouble vdb = new BoxDouble(type);
-        //                BoxInt32 b32 = box as BoxInt32;
-        //                BoxInt64 b64 = box as BoxInt64;
-        //                if (b32 != null)
-        //                    vdb.value = b32.value;
-        //                else
-        //                    vdb.value = b64.value;
-        //                return vdb;
-        //            }
-        //        default:
-        //            return null;
-        //    }
-        //}
-
-        public static VBox Convert(VBox box, NumberType type)
-        {
-            VBox b = MakeVBox(type);
-            b.Set(box);
-            return b;
-        }
-        //public static Queue<IBox> unusedInt32 = new Queue<IBox>();
-        //public static Queue<IBox> unusedInt64 = new Queue<IBox>();
-        //public static Queue<IBox> unusedIntFL = new Queue<IBox>();
-
-        //[ThreadStatic]
-        //public static Queue<VBox> unusedVBox = new Queue<VBox>();//引以为戒,这个初始化对tlb没用,其他线程还是null
-
-        [ThreadStatic]
-        public static Queue<VBox> unusedVBox = null;
-        public static void UnUse(VBox box)
-        {
-            if (box == null) return;
-            if (box.unuse)
-                return;
-            box.unuse = true;
-            if (unusedVBox == null)
-                unusedVBox = new Queue<VBox>();
-            //box.refcount = 0;
-            unusedVBox.Enqueue(box);
-        }
-        //public static void UnUse(IBox box)
-        //{
-        //    switch (box.typeStack)
-        //    {
-        //        case NumberOnStack.Int32:
-        //            unusedInt32.Enqueue(box);
-        //            break;
-        //        case NumberOnStack.Int64:
-        //            unusedInt64.Enqueue(box);
-        //            break;
-        //        case NumberOnStack.Double:
-        //            unusedIntFL.Enqueue(box);
-        //            break;
-        //    }
-        //}
-    }
-    public enum NumberType
-    {
-        IsNotNumber = 0,
-        SBYTE = 1,
-        BYTE = 2,
-        INT16 = 3,
-        UINT16 = 4,
-        INT32 = 5,
-        UINT32 = 6,
-        INT64 = 7,
-        UINT64 = 8,
-        FLOAT = 9,
-        DOUBLE = 10,
-        INTPTR = 11,
-        UINTPTR = 12,
-        DECIMAL = 13,
-        CHAR = 14,
-        BOOL = 15,
-        ENUM = 16,
-    };
-    public enum NumberOnStack
-    {
-        Int32,
-        Int64,
-        Double,
-    }
-    public class VBox
-    {
-        public bool unuse = false;
-
-        public static int newcount=0;
-        public VBox(NumberOnStack typeStack, NumberType thistype)
-        {
-            this.typeStack = typeStack;
-            this.type = thistype;
-            newcount++;
-        }
-        public VBox Clone()
-        {
-            VBox b = ValueOnStack.MakeVBox(this.type);
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    b.v32 = this.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    b.v64 = this.v64;
-                    break;
-                case NumberOnStack.Double:
-                    b.vDF = this.vDF;
-                    break;
-
-            }
-
-            return b;
-        }
-        //public int refcount = 0;
-        public NumberOnStack typeStack;
-        public NumberType type;
-        public Int32 v32;
-        public Int64 v64;
-        public Double vDF;
-        public object BoxStack()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32;
-                case NumberOnStack.Int64:
-                    return v64;
-                case NumberOnStack.Double:
-                    return vDF;
-                default:
-                    return null;
-            }
-
-        }
-        public object BoxDefine()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    switch (type)
-                    {
-                        case NumberType.ENUM:
-                            return v32;
-                        case NumberType.BOOL:
-                            return (v32 > 0);
-                        case NumberType.SBYTE:
-                            return (sbyte)v32;
-                        case NumberType.BYTE:
-                            return (byte)v32;
-                        case NumberType.CHAR:
-                            return (char)v32;
-                        case NumberType.INT16:
-                            return (Int16)v32;
-                        case NumberType.UINT16:
-                            return (UInt16)v32;
-                        case NumberType.INT32:
-                            return (Int32)v32;
-                        case NumberType.UINT32:
-                            return (UInt32)v32;
-                        case NumberType.INT64:
-                            return (Int64)v32;
-                        case NumberType.UINT64:
-                            return (UInt64)v32;
-                        case NumberType.FLOAT:
-                            return (float)v32;
-                        case NumberType.DOUBLE:
-                            return (double)v32;
-                        default:
-                            return null;
-                    }
-                case NumberOnStack.Int64:
-                    switch (type)
-                    {
-                        case NumberType.BOOL:
-                            return (v64 > 0);
-                        case NumberType.SBYTE:
-                            return (sbyte)v64;
-                        case NumberType.BYTE:
-                            return (byte)v64;
-                        case NumberType.CHAR:
-                            return (char)v64;
-                        case NumberType.INT16:
-                            return (Int16)v64;
-                        case NumberType.UINT16:
-                            return (UInt16)v64;
-                        case NumberType.INT32:
-                            return (Int32)v64;
-                        case NumberType.UINT32:
-                            return (UInt32)v64;
-                        case NumberType.INT64:
-                            return (Int64)v64;
-                        case NumberType.UINT64:
-                            return (UInt64)v64;
-                        case NumberType.FLOAT:
-                            return (float)v64;
-                        case NumberType.DOUBLE:
-                            return (double)v64;
-                        default:
-                            return null;
-                    }
-                case NumberOnStack.Double:
-                    switch (type)
-                    {
-                        case NumberType.BOOL:
-                            return (vDF > 0);
-                        case NumberType.SBYTE:
-                            return (sbyte)vDF;
-                        case NumberType.BYTE:
-                            return (byte)vDF;
-                        case NumberType.CHAR:
-                            return (char)vDF;
-                        case NumberType.INT16:
-                            return (Int16)vDF;
-                        case NumberType.UINT16:
-                            return (UInt16)vDF;
-                        case NumberType.INT32:
-                            return (Int32)vDF;
-                        case NumberType.UINT32:
-                            return (UInt32)vDF;
-                        case NumberType.INT64:
-                            return (Int64)vDF;
-                        case NumberType.UINT64:
-                            return (UInt64)vDF;
-                        case NumberType.FLOAT:
-                            return (float)vDF;
-                        case NumberType.DOUBLE:
-                            return (double)vDF;
-                        default:
-                            return null;
-                    }
-                default:
-                    return null;
-            }
-
-        }
-        public void And(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 &= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 &= right.v64;
-                    break;
-
-            }
-        }
-        public void Or(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 |= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 |= right.v64;
-                    break;
-
-            }
-        }
-        public void Xor(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 ^= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 ^= right.v64;
-                    break;
-
-            }
-        }
-        public void Not()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 = ~v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 = ~v64;
-                    break;
-
-            }
-        }
-        public void Add(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 += right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 += right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF += right.vDF;
-                    break;
-            }
-        }
-        public void Sub(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 -= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 -= right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF -= right.vDF;
-                    break;
-            }
-        }
-        public void Mul(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 *= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 *= right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF *= right.vDF;
-                    break;
-            }
-        }
-        public void Div(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 /= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 /= right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF /= right.vDF;
-                    break;
-            }
-        }
-        public void Neg()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 = -v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 = -v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF = -vDF;
-                    break;
-            }
-        }
-        public void Mod(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    v32 %= right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    v64 %= right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    vDF %= right.vDF;
-                    break;
-            }
-        }
-
-        //似乎Clone可以替代New系列
-        public VBox Mod_New(VBox right)
-        {
-            VBox newbox = ValueOnStack.MakeVBox(type);
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    newbox.v32 = v32 % right.v32;
-                    break;
-                case NumberOnStack.Int64:
-                    newbox.v64 = v64 % right.v64;
-                    break;
-                case NumberOnStack.Double:
-                    newbox.vDF = vDF % right.vDF;
-                    break;
-            }
-            return newbox;
-
-        }
-
-        //SetValue
-        public void SetDirect(object value)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    if (value is bool)
-                    {
-                        v32 = ((bool)value) ? 1 : 0;
-                    }
-                    else if (value is int)
-                    {
-                        v32 = (int)value;
-                    }
-                    else if(value is uint)
-                    {
-                        v32 = (int)(uint)value;
-                    }
-                    else if (value is short)
-                    {
-                        v32 = (short)value;
-                    }
-                    else if (value is UInt16)
-                    {
-                        v32 = (UInt16)value;
-                    }
-                    else if(value is char)
-                    {
-                        v32 = (char)value;
-                    }
-                    else if (value is byte)
-                    {
-                        v32 = (byte)value;
-                    }
-                    else if (value is sbyte)
-                    {
-                        v32 = (sbyte)value;
-                    }
-                    else
-                    {
-                        v32 = (int)Convert.ToDecimal(value);
-                    }
-                    break;
-                case NumberOnStack.Int64:
-                    if(value is Int64)
-                    {
-                        v64 = (Int64)value;
-                    }
-                    else if(value is UInt64)
-                    {
-                        v64 = (Int64)(UInt64)value;
-                    }
-                    else
-                    {
-                        v64 = (Int64)Convert.ToDecimal(value);
-                    }
-                   
-                    break;
-                case NumberOnStack.Double:
-                    vDF = (double)Convert.ToDecimal(value);
-                    break;
-            }
-        }
-        public void Set(VBox value)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    if (value.typeStack == typeStack)
-                        v32 = value.v32;
-                    else
-                        v32 = value.ToInt();
-                    break;
-                case NumberOnStack.Int64:
-                    if (value.typeStack == typeStack)
-                        v64 = value.v64;
-                    else
-                        v64 = value.ToInt64();
-                    break;
-                case NumberOnStack.Double:
-                    if (value.typeStack == typeStack)
-                        vDF = value.vDF;
-                    else
-                        vDF = value.ToDouble();
-                    break;
-            }
-        }
-
-
-        public bool logic_eq(VBox right)//=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 == right.v32;
-                case NumberOnStack.Int64:
-                    return v64 == right.v64;
-                case NumberOnStack.Double:
-                    return vDF == right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_ne(VBox right)//!=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 != right.v32;
-                case NumberOnStack.Int64:
-                    return v64 != right.v64;
-                case NumberOnStack.Double:
-                    return vDF != right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_ne_Un(VBox right)//!=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32 != (uint)right.v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64 != (UInt64)right.v64;
-                case NumberOnStack.Double:
-                    return vDF != right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_ge(VBox right)//>=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 >= right.v32;
-                case NumberOnStack.Int64:
-                    return v64 >= right.v64;
-                case NumberOnStack.Double:
-                    return vDF >= right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_ge_Un(VBox right)//>=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32 >= (uint)right.v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64 >= (UInt64)right.v64;
-                case NumberOnStack.Double:
-                    return vDF >= right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_le(VBox right)//<=
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 <= right.v32;
-                case NumberOnStack.Int64:
-                    return v64 <= right.v64;
-                case NumberOnStack.Double:
-                    return vDF <= right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_le_Un(VBox right)
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32 <= (uint)right.v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64 <= (UInt64)right.v64;
-                case NumberOnStack.Double:
-                    return vDF <= right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_gt(VBox right)//>
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 > right.v32;
-                case NumberOnStack.Int64:
-                    return v64 > right.v64;
-                case NumberOnStack.Double:
-                    return vDF > right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_gt_Un(VBox right)//>
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32 > (uint)right.v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64 > (UInt64)right.v64;
-                case NumberOnStack.Double:
-                    return vDF > right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_lt(VBox right)//<
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 < right.v32;
-                case NumberOnStack.Int64:
-                    return v64 < right.v64;
-                case NumberOnStack.Double:
-                    return vDF < right.vDF;
-                default:
-                    return false;
-            }
-        }
-        public bool logic_lt_Un(VBox right)//<
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32 < (uint)right.v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64 < (UInt64)right.v64;
-                case NumberOnStack.Double:
-                    return vDF < right.vDF;
-                default:
-                    return false;
-            }
-        }
-        //////////////////////
-        //To
-        public bool ToBool()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return v32 != 0;
-                case NumberOnStack.Int64:
-                    return v64 != 0;
-                default:
-                    return false;
-            }
-        }
-        public char ToChar()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (char)v32;
-                case NumberOnStack.Int64:
-                    return (char)v64;
-                case NumberOnStack.Double:
-                    return (char)vDF;
-                default:
-                    return (char)0;
-            }
-        }
-        public byte ToByte()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (byte)v32;
-                case NumberOnStack.Int64:
-                    return (byte)v64;
-                case NumberOnStack.Double:
-                    return (byte)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public sbyte ToSByte()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (sbyte)v32;
-                case NumberOnStack.Int64:
-                    return (sbyte)v64;
-                case NumberOnStack.Double:
-                    return (sbyte)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public Int16 ToInt16()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (Int16)v32;
-                case NumberOnStack.Int64:
-                    return (Int16)v64;
-                case NumberOnStack.Double:
-                    return (Int16)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public UInt16 ToUInt16()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (UInt16)v32;
-                case NumberOnStack.Int64:
-                    return (UInt16)v64;
-                case NumberOnStack.Double:
-                    return (UInt16)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public int ToInt()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (int)v32;
-                case NumberOnStack.Int64:
-                    return (int)v64;
-                case NumberOnStack.Double:
-                    return (int)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public uint ToUInt()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (uint)v32;
-                case NumberOnStack.Int64:
-                    return (uint)v64;
-                case NumberOnStack.Double:
-                    return (uint)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public Int64 ToInt64()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (Int64)v32;
-                case NumberOnStack.Int64:
-                    return (Int64)v64;
-                case NumberOnStack.Double:
-                    return (Int64)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public UInt64 ToUInt64()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (UInt64)v32;
-                case NumberOnStack.Int64:
-                    return (UInt64)v64;
-                case NumberOnStack.Double:
-                    return (UInt64)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public float ToFloat()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (float)v32;
-                case NumberOnStack.Int64:
-                    return (float)v64;
-                case NumberOnStack.Double:
-                    return (float)vDF;
-                default:
-                    return 0;
-            }
-        }
-        public double ToDouble()
-        {
-            switch (typeStack)
-            {
-                case NumberOnStack.Int32:
-                    return (double)v32;
-                case NumberOnStack.Int64:
-                    return (double)v64;
-                case NumberOnStack.Double:
-                    return (double)vDF;
-                default:
-                    return 0;
-            }
-        }
-
-
-    }
-    //public interface IBox
-    //{
-    //    object BoxStack();
-    //    object BoxDefine();
-
-    //    void Add(IBox right);
-    //    void Sub(IBox right);
-    //    void Mul(IBox right);
-    //    void Div(IBox right);
-    //    void Mod(IBox right);
-
-    //    IBox Mod_New(IBox right);
-    //    void SetDirect(object value);
-    //    void Set(IBox value);
-
-    //    NumberType type
-    //    {
-    //        get;
-    //        set;
-    //    }
-
-    //    NumberOnStack typeStack
-    //    {
-    //        get;
-    //    }
-
-    //    bool logic_eq(IBox right);//=
-    //    bool logic_ne(IBox right);//!=
-    //    bool logic_ne_Un(IBox right);//!=
-    //    bool logic_ge(IBox right);//>=
-    //    bool logic_ge_Un(IBox right);//>=
-    //    bool logic_le(IBox right);//<=
-    //    bool logic_le_Un(IBox right);
-    //    bool logic_gt(IBox right);//>
-    //    bool logic_gt_Un(IBox right);//>
-    //    bool logic_lt(IBox right);//<
-    //    bool logic_lt_Un(IBox right);//<
-
-    //    bool ToBool();
-    //    int ToInt();
-    //    uint ToUint();
-
-    //    Int64 ToInt64();
-    //    float ToFloat();
-
-    //    double ToDouble();
-
-    //    int refcount
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //}
-    //public class BoxInt32 : IBox
-    //{
-    //    public int refcount
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public BoxInt32(NumberType type)
-    //    {
-    //        this.type = type;
-    //    }
-    //    public NumberType type
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public NumberOnStack typeStack
-    //    {
-    //        get
-    //        {
-    //            return NumberOnStack.Int32;
-    //        }
-    //    }
-    //    public Int32 value;
-    //    public object BoxStack()
-    //    {
-    //        return value;
-    //    }
-
-    //    public object BoxDefine()
-    //    {
-    //        switch (type)
-    //        {
-    //            case NumberType.BOOL:
-    //                return (value > 0);
-    //            case NumberType.SBYTE:
-    //                return (sbyte)value;
-    //            case NumberType.BYTE:
-    //                return (byte)value;
-    //            case NumberType.CHAR:
-    //                return (char)value;
-    //            case NumberType.INT16:
-    //                return (Int16)value;
-    //            case NumberType.UINT16:
-    //                return (UInt16)value;
-    //            case NumberType.INT32:
-    //                return (Int32)value;
-    //            case NumberType.UINT32:
-    //                return (UInt32)value;
-    //            case NumberType.INT64:
-    //                return (Int64)value;
-    //            case NumberType.UINT64:
-    //                return (UInt64)value;
-    //            case NumberType.FLOAT:
-    //                return (float)value;
-    //            case NumberType.DOUBLE:
-    //                return (double)value;
-    //            default:
-    //                return null;
-    //        }
-
-    //    }
-
-    //    public void Set(IBox value)
-    //    {
-
-    //        this.value = (value as BoxInt32).value;
-    //    }
-    //    public void SetDirect(object value)
-    //    {
-    //        if (value is bool)
-    //        {
-    //            this.value = (bool)value ? 1 : 0;
-    //        }
-    //        else
-    //        {
-    //            this.value = (int)value;
-    //        }
-    //    }
-    //    public void Add(IBox right)
-    //    {
-    //        this.value += (right as BoxInt32).value;
-    //    }
-
-    //    public void Sub(IBox right)
-    //    {
-    //        this.value -= (right as BoxInt32).value;
-    //    }
-
-    //    public void Mul(IBox right)
-    //    {
-    //        this.value *= (right as BoxInt32).value;
-    //    }
-
-    //    public void Div(IBox right)
-    //    {
-    //        this.value /= (right as BoxInt32).value;
-    //    }
-    //    public void Mod(IBox right)
-    //    {
-    //        this.value %= (right as BoxInt32).value;
-    //    }
-
-    //    public IBox Mod_New(IBox right)
-    //    {
-    //        BoxInt32 b = ValueOnStack.Make(this.type) as BoxInt32;
-    //        b.value = this.value % (right as BoxInt32).value;
-    //        return b;
-    //    }
-
-    //    public bool logic_eq(IBox right)
-    //    {
-    //        return value == (right as BoxInt32).value;
-    //    }
-
-
-    //    public bool logic_ne(IBox right)
-    //    {
-    //        return value != (right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_ne_Un(IBox right)
-    //    {
-    //        return (UInt32)value != (UInt32)(right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_ge(IBox right)
-    //    {
-    //        return value >= (right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_ge_Un(IBox right)
-    //    {
-    //        return (UInt32)value >= (UInt32)(right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_le(IBox right)
-    //    {
-    //        return value <= (right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_le_Un(IBox right)
-    //    {
-    //        return (UInt32)value <= (UInt32)(right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_gt(IBox right)
-    //    {
-    //        return value > (right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_gt_Un(IBox right)
-    //    {
-    //        return (UInt32)value > (UInt32)(right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_lt(IBox right)
-    //    {
-    //        return value < (right as BoxInt32).value;
-    //    }
-
-    //    public bool logic_lt_Un(IBox right)
-    //    {
-    //        return (UInt32)value < (UInt32)(right as BoxInt32).value;
-    //    }
-
-    //    public bool ToBool()
-    //    {
-    //        return value > 0;
-    //    }
-    //    public int ToInt()
-    //    {
-    //        return (int)value;
-    //    }
-    //    public uint ToUint()
-    //    {
-    //        return (uint)value;
-    //    }
-    //    public Int64 ToInt64()
-    //    {
-    //        return (Int64)value;
-    //    }
-    //    public float ToFloat()
-    //    {
-    //        return (float)value;
-    //    }
-
-    //    public double ToDouble()
-    //    {
-    //        return (double)value;
-    //    }
-    //}
-    //public class BoxInt64 : IBox
-    //{
-    //    public int refcount
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public BoxInt64(NumberType type)
-    //    {
-    //        this.type = type;
-    //    }
-    //    public NumberType type
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public NumberOnStack typeStack
-    //    {
-    //        get
-    //        {
-    //            return NumberOnStack.Int64;
-    //        }
-    //    }
-    //    public Int64 value;
-    //    public object BoxStack()
-    //    {
-    //        return value;
-    //    }
-
-    //    public object BoxDefine()
-    //    {
-    //        switch (type)
-    //        {
-    //            case NumberType.BOOL:
-    //                return (value > 0);
-    //            case NumberType.SBYTE:
-    //                return (sbyte)value;
-    //            case NumberType.BYTE:
-    //                return (byte)value;
-    //            case NumberType.CHAR:
-    //                return (char)value;
-    //            case NumberType.INT16:
-    //                return (Int16)value;
-    //            case NumberType.UINT16:
-    //                return (UInt16)value;
-    //            case NumberType.INT32:
-    //                return (Int32)value;
-    //            case NumberType.UINT32:
-    //                return (UInt32)value;
-    //            case NumberType.INT64:
-    //                return (Int64)value;
-    //            case NumberType.UINT64:
-    //                return (UInt64)value;
-    //            case NumberType.FLOAT:
-    //                return (float)value;
-    //            case NumberType.DOUBLE:
-    //                return (double)value;
-    //            default:
-    //                return null;
-    //        }
-
-    //    }
-    //    public void Set(IBox value)
-    //    {
-    //        this.value = (value as BoxInt64).value;
-    //    }
-    //    public void SetDirect(object value)
-    //    {
-    //        this.value = (Int64)value;
-    //    }
-    //    public void Add(IBox right)
-    //    {
-    //        this.value += (right as BoxInt64).value;
-    //    }
-
-    //    public void Sub(IBox right)
-    //    {
-    //        this.value -= (right as BoxInt64).value;
-    //    }
-
-    //    public void Mul(IBox right)
-    //    {
-    //        this.value *= (right as BoxInt64).value;
-    //    }
-
-    //    public void Div(IBox right)
-    //    {
-    //        this.value /= (right as BoxInt64).value;
-    //    }
-    //    public void Mod(IBox right)
-    //    {
-    //        this.value %= (right as BoxInt64).value;
-    //    }
-    //    public IBox Mod_New(IBox right)
-    //    {
-    //        BoxInt64 b = ValueOnStack.Make(this.type) as BoxInt64;
-    //        b.value = this.value % (right as BoxInt64).value;
-    //        return b;
-    //    }
-
-    //    public bool logic_eq(IBox right)
-    //    {
-    //        return value == (right as BoxInt64).value;
-    //    }
-
-
-    //    public bool logic_ne(IBox right)
-    //    {
-    //        return value != (right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_ne_Un(IBox right)
-    //    {
-    //        return (UInt64)value != (UInt64)(right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_ge(IBox right)
-    //    {
-    //        return value >= (right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_ge_Un(IBox right)
-    //    {
-    //        return (UInt64)value >= (UInt64)(right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_le(IBox right)
-    //    {
-    //        return value <= (right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_le_Un(IBox right)
-    //    {
-    //        return (UInt64)value <= (UInt64)(right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_gt(IBox right)
-    //    {
-    //        return value > (right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_gt_Un(IBox right)
-    //    {
-    //        return (UInt64)value > (UInt64)(right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_lt(IBox right)
-    //    {
-    //        return value < (right as BoxInt64).value;
-    //    }
-
-    //    public bool logic_lt_Un(IBox right)
-    //    {
-    //        return (UInt64)value < (UInt64)(right as BoxInt64).value;
-    //    }
-    //    public bool ToBool()
-    //    {
-    //        return value > 0;
-    //    }
-    //    public int ToInt()
-    //    {
-    //        return (int)value;
-    //    }
-    //    public uint ToUint()
-    //    {
-    //        return (uint)value;
-    //    }
-    //    public Int64 ToInt64()
-    //    {
-    //        return (Int64)value;
-    //    }
-    //    public float ToFloat()
-    //    {
-    //        return (float)value;
-    //    }
-
-    //    public double ToDouble()
-    //    {
-    //        return (double)value;
-    //    }
-    //}
-    //public class BoxDouble : IBox
-    //{
-    //    public int refcount
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public BoxDouble(NumberType type)
-    //    {
-    //        this.type = type;
-    //    }
-    //    public NumberType type
-    //    {
-    //        get;
-    //        set;
-    //    }
-    //    public NumberOnStack typeStack
-    //    {
-    //        get
-    //        {
-    //            return NumberOnStack.Double;
-    //        }
-    //    }
-    //    public double value;
-    //    public object BoxStack()
-    //    {
-    //        return value;
-    //    }
-
-    //    public object BoxDefine()
-    //    {
-    //        switch (type)
-    //        {
-    //            case NumberType.BOOL:
-    //                return (value > 0);
-    //            case NumberType.SBYTE:
-    //                return (sbyte)value;
-    //            case NumberType.BYTE:
-    //                return (byte)value;
-    //            case NumberType.CHAR:
-    //                return (char)value;
-    //            case NumberType.INT16:
-    //                return (Int16)value;
-    //            case NumberType.UINT16:
-    //                return (UInt16)value;
-    //            case NumberType.INT32:
-    //                return (Int32)value;
-    //            case NumberType.UINT32:
-    //                return (UInt32)value;
-    //            case NumberType.INT64:
-    //                return (Int64)value;
-    //            case NumberType.UINT64:
-    //                return (UInt64)value;
-    //            case NumberType.FLOAT:
-    //                return (float)value;
-    //            case NumberType.DOUBLE:
-    //                return (double)value;
-    //            default:
-    //                return null;
-    //        }
-
-    //    }
-
-    //    public void Set(IBox value)
-    //    {
-    //        this.value = (value as BoxDouble).value;
-    //    }
-    //    public void SetDirect(object value)
-    //    {
-
-    //        this.value = (double)Convert.ToDecimal(value);
-    //    }
-    //    public void Add(IBox right)
-    //    {
-    //        this.value += (right as BoxDouble).value;
-    //    }
-
-    //    public void Sub(IBox right)
-    //    {
-    //        this.value -= (right as BoxDouble).value;
-    //    }
-
-    //    public void Mul(IBox right)
-    //    {
-    //        this.value *= (right as BoxDouble).value;
-    //    }
-
-    //    public void Div(IBox right)
-    //    {
-    //        this.value /= (right as BoxDouble).value;
-    //    }
-    //    public void Mod(IBox right)
-    //    {
-    //        this.value %= (right as BoxDouble).value;
-    //    }
-
-    //    public IBox Mod_New(IBox right)
-    //    {
-    //        BoxDouble b = new BoxDouble(this.type);
-    //        b.value = this.value % (right as BoxDouble).value;
-    //        return b;
-    //    }
-
-    //    public bool logic_eq(IBox right)
-    //    {
-    //        return value == (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_ne(IBox right)
-    //    {
-    //        return value != (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_ne_Un(IBox right)
-    //    {
-    //        return value != (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_ge(IBox right)
-    //    {
-    //        return value >= (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_ge_Un(IBox right)
-    //    {
-    //        return value >= (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_le(IBox right)
-    //    {
-    //        return value <= (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_le_Un(IBox right)
-    //    {
-    //        return value <= (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_gt(IBox right)
-    //    {
-    //        return value > (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_gt_Un(IBox right)
-    //    {
-    //        return value > (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_lt(IBox right)
-    //    {
-    //        return value < (right as BoxDouble).value;
-    //    }
-
-    //    public bool logic_lt_Un(IBox right)
-    //    {
-    //        return value < (right as BoxDouble).value;
-    //    }
-    //    public bool ToBool()
-    //    {
-    //        throw new NotImplementedException();
-    //    }
-    //    public int ToInt()
-    //    {
-    //        return (int)value;
-    //    }
-    //    public uint ToUint()
-    //    {
-    //        return (uint)value;
-    //    }
-    //    public Int64 ToInt64()
-    //    {
-    //        return (Int64)value;
-    //    }
-    //    public float ToFloat()
-    //    {
-    //        return (float)value;
-    //    }
-
-    //    public double ToDouble()
-    //    {
-    //        return (double)value;
-    //    }
-    //}
-
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Execute/ValueOnStack.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 3ce3551611051c440a4f92790307a06c
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: a7543e4f61e3ad842bf75e84d8f10f49
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 50
Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface/EnvAndLog.cs

@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public interface ICLRSharp_Logger
-    {
-        void Log(string str);
-        void Log_Warning(string str);
-        void Log_Error(string str);
-    }
-    public interface ICLRSharp_Environment
-    {
-        string version
-        {
-            get;
-        }
-        void LoadModule(System.IO.Stream dllStream);
-
-        void LoadModule(System.IO.Stream dllStream, System.IO.Stream pdbStream, Mono.Cecil.Cil.ISymbolReaderProvider debugInfoLoader);
-
-        ////仅仅加载模块的名字和他引用的模块名字
-        //void LoadModule_OnlyName(System.IO.Stream dllStream);
-
-        void AddSerachAssembly(System.Reflection.Assembly assembly);
-        string[] GetAllTypes();
-        ICLRType GetType(string name);
-
-        string[] GetModuleRefNames();
-        ICLRType GetType(System.Type systemType);
-
-        void RegType(ICLRType type);
-        ICLRSharp_Logger logger
-        {
-            get;
-        }
-
-        void RegCrossBind(ICrossBind bind);
-
-        ICrossBind GetCrossBind(Type type);
-
-    }
-    public interface ICrossBind
-    {
-        Type Type
-        { get; }
-        object CreateBind(CLRSharp_Instance inst);
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Interface/EnvAndLog.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: acd4794f09421a44e9cf756c8b7ce256
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: 6f034f9e8f048bb4ca7337e4a84c514b
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: 86eac08f62847994eaf4c2787670380f
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 39
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Instance.cs

@@ -1,39 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public class CLRSharp_Instance
-    {
-        public ICLRType_Sharp type
-        {
-            get;
-            private set;
-        }
-        public CLRSharp_Instance(ICLRType_Sharp type)
-        {
-            this.type = type;
-        }
-        public object system_base;
-        public Dictionary<string, object> Fields = new Dictionary<string, object>();
-
-        //每个方法都可以产生一个代理
-        public Dictionary<IMethod, Delegate> Delegates = new Dictionary<IMethod, Delegate>();
-
-        public Delegate GetDelegate(ThreadContext context, Type deleType, IMethod method)
-        {
-            Delegate dele = null;
-            if (!Delegates.TryGetValue(method, out dele))
-            {
-                dele = Delegate_Binder.MakeDelegate(deleType,  this, method);
-                Delegates[method] = dele;
-                //需要从Delegate转换成实际类型赋值的帮助类
-
-
-            }
-            return dele;
-        }
-    }
-
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Instance.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: da7073d46c0d54d4d9ffc52de3411661
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 630
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Type.cs

@@ -1,630 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public class Type_Common_CLRSharp : ICLRType_Sharp
-    {
-        public System.Type TypeForSystem
-        {
-            get
-            {
-                if (_isenum)
-                {
-                    return typeof(int);
-                }
-                return typeof(CLRSharp_Instance);
-            }
-        }
-        public Mono.Cecil.TypeDefinition type_CLRSharp
-        {
-            get;
-            private set;
-        }
-        public ICLRSharp_Environment env
-        {
-            get;
-            private set;
-        }
-        public ICLRType[] SubTypes
-        {
-            get;
-            private set;
-        }
-        public ICLRType BaseType
-        {
-            get;
-            private set;
-        }
-        public List<ICLRType> _Interfaces = null;
-
-        public bool ContainBase(Type t)
-        {
-            if (BaseType != null && BaseType.TypeForSystem == t) return true;
-            if (_Interfaces == null) return false;
-            foreach (var i in _Interfaces)
-            {
-                if (i.TypeForSystem == t) return true;
-            }
-            return false;
-        }
-        public bool HasSysBase
-        {
-            get;
-            private set;
-        }
-        public string[] GetMethodNames()
-        {
-            string[] t = new string[type_CLRSharp.Methods.Count];
-            for (int i = 0; i < type_CLRSharp.Methods.Count; i++)
-            {
-                t[i] = type_CLRSharp.Methods[i].Name;
-            }
-            return t;
-        }
-        public Type_Common_CLRSharp(ICLRSharp_Environment env, Mono.Cecil.TypeDefinition type)
-        {
-            this.env = env;
-            this.type_CLRSharp = type;
-            if (type.IsEnum)
-            {
-                _isenum = true;
-            }
-            if (type_CLRSharp.BaseType != null)
-            {
-                BaseType = env.GetType(type_CLRSharp.BaseType.FullName);
-                if (BaseType is ICLRType_System)
-                {
-                    if (BaseType.TypeForSystem == typeof(Enum) || BaseType.TypeForSystem == typeof(object) || BaseType.TypeForSystem == typeof(ValueType) || BaseType.TypeForSystem == typeof(System.Enum))
-                    {//都是这样,无所谓
-                        BaseType = null;
-                    }
-                    else
-                    {//继承了其他系统类型
-                        env.logger.Log_Error("ScriptType:" + Name + " Based On a SystemType:" + BaseType.Name);
-                        HasSysBase = true;
-                        throw new Exception("不得继承系统类型,脚本类型系统和脚本类型系统是隔离的");
-
-                    }
-                }
-                if (type_CLRSharp.HasInterfaces)
-                {
-                    _Interfaces = new List<ICLRType>();
-                    bool bWarning = true;
-                    foreach (var i in type_CLRSharp.Interfaces)
-                    {
-                        var itype = env.GetType(i.FullName);
-                        if (itype is ICLRType_System)
-                        {
-                            //继承了其他系统类型
-                            Type ts = (itype as ICLRType_System).TypeForSystem;
-
-                            if (bWarning & env.GetCrossBind(ts) == null)
-                            {
-                               
-                                if (ts.IsInterface)
-                                {
-                                    foreach(var t in ts.GetInterfaces())
-                                    {
-                                        if(env.GetCrossBind(t)!=null)
-                                        {
-                                            bWarning = false;
-                                            break;
-                                        }
-                                    }
-                                }
-                                if (bWarning)
-                                {
-                                    env.logger.Log_Warning("警告:没有CrossBind的情况下直接继承\nScriptType:" + Name + " Based On a SystemInterface:" + itype.Name);
-                                }
-                            }
-                            HasSysBase = true;
-                        }
-                        _Interfaces.Add(itype);
-                    }
-                }
-            }
-            foreach (var m in this.type_CLRSharp.Methods)
-            {
-                if (m.Name == ".cctor")
-                {
-                    NeedCCtor = true;
-                    break;
-                }
-            }
-
-        }
-        public IMethod GetVMethod(IMethod _base)
-        {
-            IMethod _method = null;
-            ICLRType_Sharp type = this;
-            while (type != _base.DeclaringType && type != null)
-            {
-                _method = type.GetMethod(_base.Name, _base.ParamList);
-                if (_method != null)
-                    return _method;
-                type = env.GetType(type.type_CLRSharp.BaseType.FullName) as ICLRType_Sharp;
-            }
-            return _base;
-
-        }
-        public void ResetStaticInstace()
-        {
-            this._staticInstance = null;
-            foreach (var m in this.type_CLRSharp.Methods)
-            {
-                if (m.Name == ".cctor")
-                {
-                    NeedCCtor = true;
-                    break;
-                }
-            }
-
-        }
-        public string Name
-        {
-            get { return type_CLRSharp.Name; }
-        }
-
-        public string FullName
-        {
-            get { return type_CLRSharp.FullName; }
-        }
-        public string FullNameWithAssembly
-        {
-            get
-            {
-                if (_isenum)
-                {
-                    return env.GetType(typeof(int)).FullNameWithAssembly;
-                }
-                return type_CLRSharp.FullName;// +"," + type_CLRSharp.Module.Name;
-            }
-        }
-
-        public IMethod GetMethod(string funcname, MethodParamList types)
-        {
-            if (type_CLRSharp.HasMethods)
-            {
-                foreach (var m in type_CLRSharp.Methods)
-                {
-                    if (m.Name != funcname) continue;
-                    if ((types == null) ? !m.HasParameters : (m.Parameters.Count == types.Count))
-                    {
-                        bool match = true;
-                        for (int i = 0; i < ((types == null) ? 0 : types.Count); i++)
-                        {
-                            var envtype = env.GetType(m.Parameters[i].ParameterType.FullName);
-                            if (envtype.IsEnum())
-                            {
-                                if (envtype.TypeForSystem != types[i].TypeForSystem)
-                                {
-                                    match = false;
-                                    break;
-                                }
-                            }
-                            else
-                            {
-                                if (envtype != types[i])
-                                {
-                                    match = false;
-                                    break;
-                                }
-                            }
-                        }
-                        if (match)
-                            return new Method_Common_CLRSharp(this, m);
-                    }
-                }
-            }
-            return null;
-        }
-
-        public IMethod GetMethodOverloaded(string funcname, MethodParamList types)
-        {
-            Mono.Cecil.MethodDefinition minDistanceMethod = null;
-            List<int> minDistanceParameters = null;
-            
-            if (type_CLRSharp.HasMethods)
-            {
-                foreach (var m in type_CLRSharp.Methods)
-                {
-                    if (m.Name != funcname) continue;
-                    if ((types == null) ? !m.HasParameters : (m.Parameters.Count == types.Count))
-                    {
-                        bool match = true;
-                        List<int> currentDistanceParameters = new List<int>();
-                        
-                        for (int i = 0; i < ((types == null) ? 0 : types.Count); i++)
-                        {
-                            var envtype = env.GetType(m.Parameters[i].ParameterType.FullName);
-                            if (envtype.IsEnum())
-                            {
-                                if (envtype.TypeForSystem != types[i].TypeForSystem)
-                                {
-                                    match = false;
-                                    break;
-                                }
-                            }
-                            else
-                            {
-                                if (!(envtype.TypeForSystem.IsAssignableFrom(types[i].TypeForSystem))) 
-                                {
-                                    match = false;
-                                    break;
-                                }
-                                
-                                currentDistanceParameters.Add(GetInheritanceDistance(envtype.TypeForSystem, types[i].TypeForSystem));
-                                
-                            }
-                        }
-                        if (match)
-                        {
-                            if (minDistanceParameters == null) 
-                            {
-                                minDistanceMethod = m;
-                                minDistanceParameters = currentDistanceParameters;
-                            }
-                            else 
-                            {
-                                for (int i = 0; i < currentDistanceParameters.Count; i++) 
-                                {
-                                    if (currentDistanceParameters[i] < minDistanceParameters[i]) 
-                                    {
-                                        minDistanceMethod = m;
-                                        minDistanceParameters = currentDistanceParameters;
-                                    }
-                                }
-                            }
-                            
-                        }
-                    }
-                }
-                
-                if (minDistanceMethod == null) 
-                {
-                    return null;
-                }
-                return new Method_Common_CLRSharp(this, minDistanceMethod);
-            }
-            
-            return null;
-        }
-        
-        public int GetInheritanceDistance(Type baseClass, Type subClass)
-        {
-            if (baseClass == subClass) 
-            {
-                return 0;
-            }
-            if (!baseClass.IsAssignableFrom (subClass)) 
-            {
-                return int.MaxValue;
-            }
-            
-            int distance = 0;
-            while ((subClass = subClass.BaseType) != baseClass) 
-            {
-                distance++;
-            }
-            return ++distance;
-        }
-
-        public IMethod[] GetMethods(string funcname)
-        {
-            List<IMethod> methods = new List<IMethod>();
-            if (type_CLRSharp.HasMethods)
-            {
-                foreach (var m in type_CLRSharp.Methods)
-                {
-                    if (m.Name != funcname) continue;
-                    methods.Add(new Method_Common_CLRSharp(this, m));
-                }
-            }
-            return methods.ToArray();
-        }
-        public IMethod[] GetAllMethods()
-        {
-            List<IMethod> methods = new List<IMethod>();
-            if (type_CLRSharp.HasMethods)
-            {
-                foreach (var m in type_CLRSharp.Methods)
-                {
-                    methods.Add(new Method_Common_CLRSharp(this, m));
-                }
-            }
-            return methods.ToArray();
-        }
-        public object InitObj()
-        {
-            return new CLRSharp_Instance(this);
-        }
-        public IMethod GetMethodT(string funcname, MethodParamList ttypes, MethodParamList types)
-        {
-            return null;
-        }
-        public IField GetField(string name)
-        {
-            foreach (var f in type_CLRSharp.Fields)
-            {
-                if (f.Name == name)
-                {
-                    return new Field_Common_CLRSharp(this, f);
-                }
-            }
-            return null;
-        }
-        public bool IsInst(object obj)
-        {
-            if (obj is CLRSharp_Instance)
-            {
-                CLRSharp_Instance ins = obj as CLRSharp_Instance;
-                if (ins.type == this)
-                {
-                    return true;
-                }
-                //这里还要实现继承关系
-                if(ins.type is ICLRType_Sharp)
-                {
-                    Type_Common_CLRSharp sharps =ins.type as Type_Common_CLRSharp;
-                    if(sharps._Interfaces.Count>0)
-                    {
-                        foreach(var i in sharps._Interfaces)
-                        {
-                            if (i == this)
-                                return true;
-                        }
-                    }
-                }
-            }
-            return false;
-
-        }
-
-        public ICLRType GetNestType(ICLRSharp_Environment env, string fullname)
-        {
-            foreach (var stype in type_CLRSharp.NestedTypes)
-            {
-                if (stype.Name == fullname)
-                {
-                    var itype = new Type_Common_CLRSharp(env, stype);
-                    env.RegType(itype);
-                    return itype;
-                }
-            }
-            return null;
-        }
-
-        CLRSharp_Instance _staticInstance = null;
-        public CLRSharp_Instance staticInstance
-        {
-            get
-            {
-                if (_staticInstance == null)
-                    _staticInstance = new CLRSharp_Instance(this);
-                return _staticInstance;
-            }
-        }
-
-        public bool NeedCCtor
-        {
-            get;
-            private set;
-        }
-        public void InvokeCCtor(ThreadContext context)
-        {
-            NeedCCtor = false;
-            this.GetMethod(".cctor", null).Invoke(context, this.staticInstance, new object[] { });
-
-        }
-
-
-        public string[] GetFieldNames()
-        {
-            string[] abc = new string[type_CLRSharp.Fields.Count];
-            for (int i = 0; i < type_CLRSharp.Fields.Count; i++)
-            {
-                abc[i] = type_CLRSharp.Fields[i].Name;
-            }
-            return abc;
-        }
-        bool _isenum = false;
-        public bool IsEnum()
-        {
-            return _isenum;
-        }
-    }
-    public class Method_Common_CLRSharp : IMethod_Sharp
-    {
-        Type_Common_CLRSharp _DeclaringType;
-
-        public Method_Common_CLRSharp(Type_Common_CLRSharp type, Mono.Cecil.MethodDefinition method)
-        {
-
-            if (method == null)
-                throw new Exception("not allow null method.");
-            this._DeclaringType = type;
-
-            method_CLRSharp = method;
-            ReturnType = type.env.GetType(method.ReturnType.FullName);
-
-            ParamList = new MethodParamList(type.env, method);
-        }
-        public string Name
-        {
-            get
-            {
-                return method_CLRSharp.Name;
-
-            }
-        }
-
-        public bool isStatic
-        {
-            get
-            {
-                return method_CLRSharp.IsStatic;
-            }
-        }
-        public ICLRType DeclaringType
-        {
-            get
-            {
-                return _DeclaringType;
-            }
-        }
-        public ICLRType ReturnType
-        {
-            get;
-            private set;
-
-
-        }
-        public MethodParamList ParamList
-        {
-            get;
-            private set;
-        }
-        public Mono.Cecil.MethodDefinition method_CLRSharp;
-        public object Invoke(ThreadContext context, object _this, object[] _params, bool bVisual)
-        {
-            if (context == null)
-                context = ThreadContext.activeContext;
-            if (context == null)
-                throw new Exception("这个线程上没有CLRSharp:ThreadContext");
-            if (bVisual && method_CLRSharp.IsVirtual)
-            {
-                CLRSharp_Instance inst = _this as CLRSharp_Instance;
-                if (inst.type != this.DeclaringType)
-                {
-                    IMethod impl = inst.type.GetVMethod(this);// .GetMethod(this.Name, this.ParamList);
-                    if (impl != this)
-                    {
-                        return impl.Invoke(context, _this, _params);
-                    }
-                }
-            }
-            if (method_CLRSharp.Name == ".ctor")
-            {
-                CLRSharp_Instance inst = _this as CLRSharp_Instance;
-                if (inst == null)
-                    inst = new CLRSharp_Instance(_DeclaringType);
-
-                //if (_DeclaringType.BaseType is ICLRType_System)
-                context.ExecuteFunc(this, inst, _params);
-                return inst;
-            }
-            var obj = context.ExecuteFunc(this, _this, _params);
-            if (obj is CLRSharp_Instance && ReturnType is ICLRType_System)
-            {
-                var bind = context.environment.GetCrossBind((ReturnType as ICLRType_System).TypeForSystem);
-                if (bind != null)
-                {
-                    obj = bind.CreateBind(obj as CLRSharp_Instance);
-                }
-            }
-            return obj;
-        }
-        public object Invoke(ThreadContext context, object _this, object[] _params)
-        {
-            return Invoke(context, _this, _params, true);
-        }
-        public object Invoke(ThreadContext context, object _this, object[] _params, bool bVisual, bool autoLogDump)
-        {
-            try
-            {
-                return Invoke(context, _this, _params, bVisual);
-            }
-            catch (Exception err)
-            {
-                if (context == null) context = ThreadContext.activeContext;
-                if (context == null)
-                    throw new Exception("当前线程没有创建ThreadContext,无法Dump", err);
-                else
-                {
-                    context.environment.logger.Log_Error(context.Dump());
-                    throw err;
-                }
-            }
-        }
-
-        CodeBody _body = null;
-        public CodeBody body
-        {
-            get
-            {
-                if (_body == null)
-                {
-                    if (!method_CLRSharp.HasBody)
-                        return null;
-                    _body = new CodeBody(this._DeclaringType.env, this.method_CLRSharp);
-                    //(this.DeclaringType.env as CLRSharp_Environment).CreateCodeBody(this);
-                }
-                return _body;
-            }
-
-        }
-    }
-
-    public class Field_Common_CLRSharp : IField
-    {
-        public Type_Common_CLRSharp _DeclaringType;
-        public Mono.Cecil.FieldDefinition field;
-        public Field_Common_CLRSharp(Type_Common_CLRSharp type, Mono.Cecil.FieldDefinition field)
-        {
-            this.field = field;
-            this.FieldType = type.env.GetType(field.FieldType.FullName);
-            this._DeclaringType = type;
-
-        }
-        public ICLRType FieldType
-        {
-            get;
-            private set;
-        }
-        public ICLRType DeclaringType
-        {
-            get
-            {
-                return _DeclaringType;
-            }
-        }
-        public void Set(object _this, object value)
-        {
-            CLRSharp_Instance sins = null;
-            if (_this == null)
-            {
-                sins = _DeclaringType.staticInstance;
-            }
-            else
-            {
-                sins = _this as CLRSharp_Instance;
-            }
-
-
-            sins.Fields[field.Name] = value;
-        }
-
-        public object Get(object _this)
-        {
-            CLRSharp_Instance sins = null;
-            if (_this == null)
-            {
-                sins = _DeclaringType.staticInstance;
-            }
-            else
-            {
-                sins = _this as CLRSharp_Instance;
-            }
-            object v = null;
-            sins.Fields.TryGetValue(field.Name, out v);
-            return v;
-        }
-
-        public bool isStatic
-        {
-            get { return this.field.IsStatic; }
-        }
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/CLRSharp/CLRSharp_Type.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ac73fba17fb55fa40a1f50559d8c8665
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: 64436cea59acfc346b5f468b0f209d01
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 249
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate/Delegate_Helper.cs

@@ -1,249 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    /// <summary>
-    /// 委托绑定
-    /// </summary>
-    public class Delegate_Binder
-    {
-        static Dictionary<Type, IDelegate_BindTool> mapBind = new Dictionary<Type, IDelegate_BindTool>();
-        public static void RegBind(Type deletype, IDelegate_BindTool bindtool)
-        {
-            mapBind[deletype] = bindtool;
-        }
-        public static Delegate MakeDelegate(Type deletype, CLRSharp_Instance _this_inst, IMethod __method)
-        {
-            IDelegate_BindTool btool = null;
-            if (mapBind.TryGetValue(deletype, out btool))
-            {
-                return btool.CreateDele(deletype, null, _this_inst, __method);
-            }
-            var method = deletype.GetMethod("Invoke");
-            if (__method.isStatic)
-            {
-                _this_inst = null;
-            }
-            var pp = method.GetParameters();
-
-            if (method.ReturnType == typeof(void))
-            {
-                if (pp.Length == 0)
-                {
-                    //var gtype = typeof(Delegate_BindTool).MakeGenericType(new Type[] { });
-                    btool = new Delegate_BindTool();
-                }
-                else if (pp.Length == 1)
-                {
-                    var gtype = typeof(Delegate_BindTool<>).MakeGenericType(new Type[] { pp[0].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 2)
-                {
-                    var gtype = typeof(Delegate_BindTool<,>).MakeGenericType(new Type[] { pp[0].ParameterType, pp[1].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 3)
-                {
-                    var gtype = typeof(Delegate_BindTool<,,>).MakeGenericType(new Type[] { pp[0].ParameterType, pp[1].ParameterType, pp[2].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 4)
-                {
-                    var gtype = typeof(Delegate_BindTool<,,,>).MakeGenericType(new Type[] { pp[0].ParameterType, pp[1].ParameterType, pp[2].ParameterType, pp[3].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else
-                {
-                    throw new Exception("还没有支持这么多参数的委托");
-                }
-            }
-            else
-            {
-                if (pp.Length == 0)
-                {
-                    var gtype = typeof(Delegate_BindTool_Ret<>).MakeGenericType(new Type[] { method.ReturnType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-
-                }
-                else if (pp.Length == 1)
-                {
-                    var gtype = typeof(Delegate_BindTool_Ret<,>).MakeGenericType(new Type[] { method.ReturnType, pp[0].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 2)
-                {
-                    var gtype = typeof(Delegate_BindTool_Ret<,,>).MakeGenericType(new Type[] { method.ReturnType, pp[0].ParameterType, pp[1].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 3)
-                {
-                    var gtype = typeof(Delegate_BindTool_Ret<,,,>).MakeGenericType(new Type[] { method.ReturnType, pp[0].ParameterType, pp[1].ParameterType, pp[2].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else if (pp.Length == 4)
-                {
-                    var gtype = typeof(Delegate_BindTool_Ret<,,,>).MakeGenericType(new Type[] { method.ReturnType, pp[0].ParameterType, pp[1].ParameterType, pp[2].ParameterType, pp[3].ParameterType });
-                    btool = gtype.GetConstructor(new Type[] { }).Invoke(new object[] { }) as IDelegate_BindTool;
-                }
-                else
-                {
-                    throw new Exception("还没有支持这么多参数的委托");
-                }
-            }
-            mapBind[deletype] = btool;
-            return btool.CreateDele(deletype, null, _this_inst, __method);
-        }
-    }
-    public interface IDelegate_BindTool
-    {
-        Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method);
-    }
-    public class Delegate_BindTool : IDelegate_BindTool
-    {
-        delegate void Action();
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = () =>
-            {
-                _method.Invoke(context, _this, new object[] { }, true, true);
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool<T1> : IDelegate_BindTool
-    {
-        delegate void Action(T1 p1);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (p1) =>
-            {
-                _method.Invoke(context, _this, new object[] { p1 }, true, true);
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool<T1, T2> : IDelegate_BindTool
-    {
-        delegate void Action(T1 p1, T2 p2);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (p1, p2) =>
-            {
-                _method.Invoke(context, _this, new object[] { p1, p2 }, true, true);
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool<T1, T2, T3> : IDelegate_BindTool
-    {
-        delegate void Action(T1 p1, T2 p2, T3 p3);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (p1, p2, p3) =>
-            {
-                _method.Invoke(context, _this, new object[] { p1, p2, p3 }, true, true);
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool<T1, T2, T3, T4> : IDelegate_BindTool
-    {
-        delegate void Action(T1 p1, T2 p2, T3 p3, T4 p4);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (p1, p2, p3, p4) =>
-            {
-                _method.Invoke(context, _this, new object[] { p1, p2, p3, p4 }, true, true);
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool_Ret<TRet> : IDelegate_BindTool
-    {
-        delegate TRet Action();
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = () =>
-            {
-                var o = _method.Invoke(context, _this, new object[] { }, true, true);
-                if (o is VBox)
-                {
-                    o = (o as VBox).BoxDefine();
-                }
-                return (TRet)o;
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool_Ret<TRet, T1> : IDelegate_BindTool
-    {
-        delegate TRet Action(T1 p1);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (T1 p1) =>
-            {
-                var o = _method.Invoke(context, _this, new object[] { p1 }, true, true);
-                if (o is VBox)
-                {
-                    o = (o as VBox).BoxDefine();
-                }
-                return (TRet)o;
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool_Ret<TRet, T1, T2> : IDelegate_BindTool
-    {
-        delegate TRet Action(T1 p1, T2 p2);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (T1 p1, T2 p2) =>
-            {
-                var o = _method.Invoke(context, _this, new object[] { p1, p2 }, true, true);
-                if (o is VBox)
-                {
-                    o = (o as VBox).BoxDefine();
-                }
-                return (TRet)o;
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool_Ret<TRet, T1, T2, T3> : IDelegate_BindTool
-    {
-        delegate TRet Action(T1 p1, T2 p2, T3 p3);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (T1 p1, T2 p2, T3 p3) =>
-            {
-                object o = _method.Invoke(context, _this, new object[] { p1, p2, p3 }, true, true);
-                if (o is VBox)
-                {
-                    o = (o as VBox).BoxDefine();
-                }
-                return (TRet)o;
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-    public class Delegate_BindTool_Ret<TRet, T1, T2, T3, T4> : IDelegate_BindTool
-    {
-        delegate TRet Action(T1 p1, T2 p2, T3 p3, T4 p4);
-        public Delegate CreateDele(Type deletype, ThreadContext context, CLRSharp_Instance _this, IMethod _method)
-        {
-            Action act = (T1 p1, T2 p2, T3 p3, T4 p4) =>
-            {
-                object o = _method.Invoke(context, _this, new object[] { p1, p2, p3, p4 }, true, true);
-                if (o is VBox)
-                {
-                    o = (o as VBox).BoxDefine();
-                }
-                return (TRet)o;
-            };
-            return Delegate.CreateDelegate(deletype, act.Target, act.Method);
-        }
-    }
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Delegate/Delegate_Helper.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 8c47d69bfe4e6cf49b92a2b6d5cecacb
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 5
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System.meta

@@ -1,5 +0,0 @@
-fileFormatVersion: 2
-guid: 890c56c760294904abb9f88343a119d0
-folderAsset: yes
-DefaultImporter:
-  userData: 

+ 0 - 522
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System/System_Type.cs

@@ -1,522 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    public class Type_Common_System : ICLRType_System
-    {
-        public System.Type TypeForSystem
-        {
-            get;
-            private set;
-        }
-        public ICLRSharp_Environment env
-        {
-            get;
-            private set;
-        }
-        public ICLRType[] SubTypes
-        {
-            get;
-            private set;
-        }
-        public Type_Common_System(ICLRSharp_Environment env, System.Type type, ICLRType[] subtype)
-        {
-            this.env = env;
-            this.TypeForSystem = type;
-            FullNameWithAssembly = type.AssemblyQualifiedName;
-            this.SubTypes = subtype;
-        }
-        public string Name
-        {
-            get { return TypeForSystem.Name; }
-        }
-
-        public string FullName
-        {
-            get { return TypeForSystem.FullName; }
-        }
-        public string FullNameWithAssembly
-        {
-            get;
-            private set;
-
-            //{
-            //    string aname = TypeForSystem.AssemblyQualifiedName;
-            //    int i = aname.IndexOf(',');
-            //    i = aname.IndexOf(',', i + 1);
-            //    return aname.Substring(0, i);
-            //}
-        }
-        public virtual IMethod GetMethod(string funcname, MethodParamList types)
-        {
-            if (funcname == ".ctor")
-            {
-                var con = TypeForSystem.GetConstructor(types.ToArraySystem());
-                return new Method_Common_System(this, con);
-            }
-            var method = TypeForSystem.GetMethod(funcname, types.ToArraySystem());
-            return new Method_Common_System(this, method);
-        }
-        public virtual IMethod[] GetMethods(string funcname)
-        {
-            List<IMethod> methods = new List<IMethod>();
-            if (funcname == ".ctor")
-            {
-                var cons = TypeForSystem.GetConstructors();
-                foreach (var c in cons)
-                {
-                    methods.Add(new Method_Common_System(this, c));
-                }
-
-            }
-            else
-            {
-                var __methods = TypeForSystem.GetMethods();
-                foreach (var m in __methods)
-                {
-                    if (m.Name == funcname)
-                    {
-                        methods.Add(new Method_Common_System(this, m));
-                    }
-                }
-            }
-
-            return methods.ToArray();
-        }
-        public virtual IMethod[] GetAllMethods()
-        {
-            List<IMethod> methods = new List<IMethod>();
-            {
-                var __methods = TypeForSystem.GetMethods();
-                foreach (var m in __methods)
-                {
-                    //if (m.Name == funcname)
-                    {
-                        methods.Add(new Method_Common_System(this, m));
-                    }
-                }
-            }
-
-            return methods.ToArray();
-        }
-        public object InitObj()
-        {
-            return Activator.CreateInstance(TypeForSystem);
-        }
-        public virtual IMethod GetMethodT(string funcname, MethodParamList ttypes, MethodParamList types)
-        {
-            //这个实现还不完全
-            //有个别重构下,判定比这个要复杂
-            System.Reflection.MethodInfo _method = null;
-            var ms = TypeForSystem.GetMethods();
-            foreach (var m in ms)
-            {
-                if (m.Name == funcname && m.IsGenericMethodDefinition)
-                {
-                    var ts = m.GetGenericArguments();
-                    var ps = m.GetParameters();
-                    if (ts.Length == ttypes.Count && ps.Length == types.Count)
-                    {
-                        _method = m;
-                        break;
-                    }
-
-                }
-            }
-
-            // _method = TypeForSystem.GetMethod(funcname, types.ToArraySystem());
-
-            return new Method_Common_System(this, _method.MakeGenericMethod(ttypes.ToArraySystem()));
-        }
-        public virtual IField GetField(string name)
-        {
-            return new Field_Common_System(env, TypeForSystem.GetField(name));
-        }
-        public bool IsInst(object obj)
-        {
-            return TypeForSystem.IsInstanceOfType(obj);
-
-        }
-
-
-        public ICLRType GetNestType(ICLRSharp_Environment env, string fullname)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Delegate CreateDelegate(Type deletype, object _this, IMethod_System _method)
-        {
-            return Delegate.CreateDelegate(deletype, _this, _method.method_System as System.Reflection.MethodInfo);
-        }
-
-
-        public string[] GetFieldNames()
-        {
-            var fs = TypeForSystem.GetFields();
-            string[] names = new string[fs.Length];
-            for (int i = 0; i < fs.Length; i++)
-            {
-                names[i] = fs[i].Name;
-            }
-            return names;
-        }
-        public bool IsEnum()
-        {
-            return TypeForSystem.IsEnum;
-        }
-    }
-    class Field_Common_System : IField
-    {
-        public System.Reflection.FieldInfo info;
-        public Field_Common_System(ICLRSharp_Environment env, System.Reflection.FieldInfo field)
-        {
-            info = field;
-
-            FieldType = env.GetType(field.FieldType);
-            DeclaringType = env.GetType(field.DeclaringType);
-        }
-        public ICLRType FieldType
-        {
-            get;
-            private set;
-        }
-        public ICLRType DeclaringType
-        {
-            get;
-            private set;
-        }
-        public void Set(object _this, object value)
-        {
-            if(value!=null&&(value.GetType()==typeof(int)|| value.GetType() == typeof(Int64)))
-            {
-                if (info.FieldType == typeof(bool))
-                    value = (bool)((int)value != 0);
-                else if(info.FieldType==typeof(char))
-                {
-                    value = (char)((int)value);
-                }
-                else if (info.FieldType == typeof(byte))
-                {
-                    value = (byte)((int)value);
-                }
-                else if (info.FieldType == typeof(sbyte))
-                {
-                    value = (sbyte)((int)value);
-                }
-                else if (info.FieldType == typeof(UInt16))
-                {
-                    value = (UInt16)((int)value);
-                }
-                else if (info.FieldType == typeof(Int16))
-                {
-                    value = (Int16)((int)value);
-                }
-                else if (info.FieldType == typeof(UInt32))
-                {
-                    value = (UInt32)((int)value);
-                }
-                else if (info.FieldType == typeof(UInt64))
-                {
-                    value = (UInt64)((Int64)value);
-                }
-
-            }
-         
-            info.SetValue(_this, value);
-        }
-
-        public object Get(object _this)
-        {
-            return info.GetValue(_this);
-        }
-
-        public bool isStatic
-        {
-            get { return info.IsStatic; }
-        }
-    }
-
-    class Method_Common_System : IMethod_System
-    {
-
-        public Method_Common_System(ICLRType DeclaringType, System.Reflection.MethodBase method)
-        {
-            if (method == null)
-                throw new Exception("not allow null method.");
-            method_System = method;
-            this.DeclaringType = DeclaringType;
-            if (method is System.Reflection.MethodInfo)
-            {
-                System.Reflection.MethodInfo info = method as System.Reflection.MethodInfo;
-                ReturnType = DeclaringType.env.GetType(info.ReturnType);
-            }
-            ParamList = new MethodParamList(DeclaringType.env, method);
-        }
-        public bool isStatic
-        {
-            get { return method_System.IsStatic; }
-        }
-        public string Name
-        {
-            get
-            {
-                return method_System.Name;
-            }
-        }
-
-        public ICLRType DeclaringType
-        {
-            get;
-            private set;
-
-        }
-        public ICLRType ReturnType
-        {
-            get;
-            private set;
-        }
-        public MethodParamList ParamList
-        {
-            get;
-            private set;
-        }
-        public System.Reflection.MethodBase method_System
-        {
-            get;
-            private set;
-        }
-        public object Invoke(ThreadContext context, object _this, object[] _params, bool bVisual)
-        {//对程序类型,其实我们做不到区分虚实调用。。。没办法
-            if (this.Name == "Concat" && this.DeclaringType.TypeForSystem == typeof(string))
-            {//这里有一个IL2CPP的问题
-
-
-                if (_params.Length == 1)
-                {
-                    if (_params[0] == null)
-                        return "null";
-                    if (_params[0] is string[])
-                    {
-                        return string.Concat(_params[0] as string[]);
-                    }
-                    else if (_params[0] is object[])
-                    {
-                        return string.Concat(_params[0] as object[]);
-                    }
-                    else
-                    {
-                        return _params[0].ToString();
-                    }
-                }
-                else
-                {
-                    string outstr = "null";
-                    if (_params[0] != null) outstr = _params[0].ToString();
-
-                    for (int i = 1; i < _params.Length; i++)
-                    {
-                        if (_params[i] != null)
-                            outstr += _params[i];
-                        else
-                            outstr += "null";
-                    }
-                    return outstr;
-                }
-
-            }
-            return Invoke(context, _this, _params);
-        }
-        public object Invoke(ThreadContext context, object _this, object[] _params)
-        {
-            if (_this is CLRSharp_Instance)
-            {
-                CLRSharp_Instance inst = _this as CLRSharp_Instance;
-                if (inst.type.HasSysBase)
-                {
-                    var btype = inst.type.ContainBase(method_System.DeclaringType);
-                    if (btype)
-                    {
-                        var CrossBind = context.environment.GetCrossBind(method_System.DeclaringType);
-                        if (CrossBind != null)
-                        {
-                            _this = CrossBind.CreateBind(inst);
-                        }
-                        else
-                        {
-                            _this = (_this as CLRSharp_Instance).system_base;
-                            //如果没有绑定器,尝试直接使用System_base;
-                        }
-                        //context.environment.logger.Log("这里有一个需要映射的类型");
-                    }
-                }
-            }
-            //委托是很特殊的存在
-            //if(this.DeclaringType.IsDelegate)
-            //{
-
-            //}
-            if (method_System is System.Reflection.ConstructorInfo)
-            {
-                if (method_System.DeclaringType.IsSubclassOf(typeof(Delegate)))
-                {//创建委托
-                    object src = _params[0];
-                    RefFunc fun = _params[1] as RefFunc;
-                    ICLRType_Sharp clrtype = fun._method.DeclaringType as ICLRType_Sharp;
-                    if (clrtype != null)//onclr
-                    {
-
-                        CLRSharp_Instance inst = src as CLRSharp_Instance;
-                        if (fun._method.isStatic && clrtype != null)
-                            inst = clrtype.staticInstance;
-                        return inst.GetDelegate(context, method_System.DeclaringType, fun._method);
-                    }
-                    else//onsystem
-                    {
-                        ICLRType_System stype = fun._method.DeclaringType as ICLRType_System;
-                        return stype.CreateDelegate(method_System.DeclaringType, src, fun._method as IMethod_System);
-                    }
-                }
-                object[] _outp = null;
-                if (_params != null && _params.Length > 0)
-                {
-                    _outp = new object[_params.Length];
-                    var _paramsdef = method_System.GetParameters();
-                    for (int i = 0; i < _params.Length; i++)
-                    {
-                        if (_params[i] == null)
-                        {
-                            _outp[i] = null;
-                            continue;
-                        }
-                        Type tsrc = _params[i].GetType();
-                        Type ttarget = _paramsdef[i].ParameterType;
-                        if (tsrc == ttarget)
-                        {
-                            _outp[i] = _params[i];
-                        }
-                        else if (tsrc.IsSubclassOf(ttarget))
-                        {
-                            _outp[i] = _params[i];
-                        }
-                        else if (_paramsdef[i].ParameterType.IsEnum)//特殊处理枚举
-                        {
-                            var ms = _paramsdef[i].ParameterType.GetMethods();
-                            _outp[i] = Enum.ToObject(_paramsdef[i].ParameterType, _params[i]);
-                        }
-                        else
-                        {
-                            if (ttarget == typeof(byte))
-                                _outp[i] = (byte)Convert.ToDecimal(_params[i]);
-                            else
-                            {
-                                _outp[i] = _params[i];
-                            }
-                            //var ms =_params[i].GetType().GetMethods();
-                        }
-                    }
-                }
-                var newobj = (method_System as System.Reflection.ConstructorInfo).Invoke(_outp);
-                return newobj;
-            }
-            else
-            {
-                Dictionary<int, object> hasref = new Dictionary<int, object>();
-                object[] _outp = null;
-                if (_params != null && _params.Length > 0)
-                {
-                    _outp = new object[_params.Length];
-                    var _paramsdef = method_System.GetParameters();
-                    for (int i = 0; i < _params.Length; i++)
-                    {
-                        if (_params[i] is CLRSharp.StackFrame.RefObj)//特殊处理outparam
-                        {
-                            object v = (_params[i] as CLRSharp.StackFrame.RefObj).Get();
-                            if (v is VBox)
-                            {
-                                v = (v as VBox).BoxDefine();
-                            }
-                            hasref[i] = v;
-                            _outp[i] = v;
-                        }
-                        else if (_paramsdef[i].ParameterType.IsEnum)//特殊处理枚举
-                        {
-                            var ms = _paramsdef[i].ParameterType.GetMethods();
-                            _outp[i] = Enum.ToObject(_paramsdef[i].ParameterType, _params[i]);
-                        }
-                        else
-                        {
-                            if(_paramsdef[i].ParameterType==typeof(UInt64)&&_params[i] is Int64)
-                            {
-                                _outp[i] = (UInt64)(Int64)_params[i];
-                            }
-                            else if (_paramsdef[i].ParameterType == typeof(Int64) && _params[i] is UInt64)
-                            {
-                                _outp[i] = (Int64)(UInt64)_params[i];
-                            }
-                            else if (_paramsdef[i].ParameterType == typeof(UInt32) && _params[i] is Int32)
-                            {
-                                _outp[i] = (UInt32)(Int32)_params[i];
-                            }
-                            else if (_paramsdef[i].ParameterType == typeof(Int32) && _params[i] is UInt32)
-                            {
-                                _outp[i] = (Int32)(UInt32)_params[i];
-                            }
-                            else
-                            {
-                                _outp[i] = _params[i];
-                            }
-                        }
-                    }
-                }
-                //if (method_System.DeclaringType.IsSubclassOf(typeof(Delegate)))//直接用Delegate.Invoke,会导致转到本机代码再回来
-                ////会导致错误堆栈不方便观察,但是也没办法直接调用,只能手写一些常用类型
-                //{
-                //    //需要从Delegate转换成实际类型执行的帮助类
-                //    Action<int> abc = _this as Action<int>;
-                //    abc((int)_params[0]);
-                //    return null;
-                //}
-                //else
-                {
-                    var _out = method_System.Invoke(_this, _outp);
-                    foreach (var _ref in hasref)
-                    {
-                        if (_ref.Value is VBox)
-                        {
-                            (_ref.Value as VBox).SetDirect(_outp[_ref.Key]);
-                        }
-                        else
-                        {
-                            (_params[_ref.Key] as CLRSharp.StackFrame.RefObj).Set(_outp[_ref.Key]);
-                        }
-                    }
-                    return _out;
-                }
-            }
-
-        }
-
-        public object Invoke(ThreadContext context, object _this, object[] _params, bool bVisual, bool autoLogDump)
-        {
-            try
-            {
-                return Invoke(context, _this, _params);
-            }
-            catch (Exception err)
-            {
-                if (context == null) context = ThreadContext.activeContext;
-                if (context == null)
-                    throw new Exception("当前线程没有创建ThreadContext,无法Dump", err);
-                else
-                {
-                    context.environment.logger.Log_Error("Error InSystemCall:" + this.DeclaringType.FullName + "::" + this.Name);
-                    throw err;
-                }
-            }
-        }
-
-    }
-
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/System/System_Type.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 42c3f2e5c3b50e5458673a9215251765
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 149
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_Common.cs

@@ -1,149 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    //一个ICLRType 是一个所有类型的抽象,无论是System.Type
-    //还是CLRSharp的抽象,均可通过ICLRType进行调用
-    public interface ICLRType
-    {
-        ICLRSharp_Environment env
-        {
-            get;
-        }
-        string Name
-        {
-            get;
-        }
-        string FullName
-        {
-            get;
-        }
-        string FullNameWithAssembly
-        {
-            get;
-        }
-        System.Type TypeForSystem
-        {
-            get;
-        }
-        //funcname==".ctor" 表示构造函数
-        IMethod GetMethod(string funcname, MethodParamList types);
-        IMethod[] GetMethods(string funcname);
-        IMethod[] GetAllMethods();
-        object InitObj();
-        /// <summary>
-        /// 获取模板函数
-        /// </summary>
-        /// <param name="funcname"></param>
-        /// <param name="TTypes"></param>
-        /// <param name="types"></param>
-        /// <returns></returns>
-        IMethod GetMethodT(string funcname, MethodParamList TTypes, MethodParamList types);
-        IField GetField(string name);
-        string[] GetFieldNames();
-        bool IsInst(object obj);
-
-        ICLRType GetNestType(ICLRSharp_Environment env, string fullname);
-        ICLRType[] SubTypes
-        {
-            get;
-        }
-
-        bool IsEnum();
-            
-    }
-    public interface ICLRType_Sharp : ICLRType
-    {
-        CLRSharp_Instance staticInstance
-        {
-            get;
-        }
-        void ResetStaticInstace();
-        bool NeedCCtor
-        {
-            get;
-        }
-        void InvokeCCtor(ThreadContext context);
-        Mono.Cecil.TypeDefinition type_CLRSharp
-        {
-            get;
-        }
-        IMethod GetVMethod(IMethod _base);
-
-        bool ContainBase(Type t);
-        bool HasSysBase
-        {
-            get;
-        }
-        string[] GetMethodNames();
-    }
-    public interface ICLRType_System : ICLRType
-    {
-        Delegate CreateDelegate(Type deletype, object _this, IMethod_System _method);
-    }
-    public interface IMethod
-    {
-        object Invoke(ThreadContext context, object _this, object[] _params);
-        object Invoke(ThreadContext context, object _this, object[] _params,bool bVisual);
-
-        object Invoke(ThreadContext context, object _this, object[] _params, bool bVisual,bool autoLogDump);
-
-        bool isStatic
-        {
-            get;
-        }
-        string Name
-        {
-            get;
-        }
-
-        ICLRType DeclaringType
-        {
-            get;
-        }
-        ICLRType ReturnType
-        {
-            get;
-        }
-        MethodParamList ParamList
-        {
-            get;
-        }
-    }
-    public interface IMethod_System : IMethod
-    {
-        System.Reflection.MethodBase method_System
-        {
-            get;
-        }
-    }
-    public interface IMethod_Sharp : IMethod
-    {
-        CodeBody body
-        {
-            get;
-        }
-
-    }
-    public interface IField
-    {
-        void Set(object _this, object value);
-        object Get(object _this);
-        bool isStatic
-        {
-            get;
-        }
-        ICLRType DeclaringType
-        {
-            get;
-
-        }
-        ICLRType FieldType
-        {
-            get;
-        }
-    }
-
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_Common.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d2cca4ee7518c1740a9cb71d9ea5c3b1
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 202
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_List.cs

@@ -1,202 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace CLRSharp
-{
-    /// <summary>
-    /// 方法参数表
-    /// </summary>
-    public class MethodParamList : List<ICLRType>
-    {
-        private MethodParamList()
-        {
-
-        }
-        private MethodParamList(IList<ICLRType> types)
-        {
-            if (types != null)
-            {
-                foreach (var t in types)
-                {
-                    this.Add(t);
-                }
-            }
-
-        }
-        static MethodParamList _OneParam_Int = null;
-        public static MethodParamList const_OneParam_Int(ICLRSharp_Environment env)
-        {
-            if (_OneParam_Int == null)
-            {
-                _OneParam_Int = new MethodParamList(new ICLRType[] { env.GetType(typeof(int)) });
-            }
-
-            return _OneParam_Int;
-
-
-        }
-        static MethodParamList _ZeroParam = null;
-        public static MethodParamList constEmpty()
-        {
-            if (_ZeroParam == null)
-            {
-                _ZeroParam = new MethodParamList(new ICLRType[] { });
-            }
-            return _ZeroParam;
-        }
-
-        public static MethodParamList Make(params ICLRType[] types)
-        {
-            return new MethodParamList(types);
-        }
-        public MethodParamList(ICLRSharp_Environment env, Mono.Cecil.MethodReference method)
-        {
-            if (method.HasParameters)
-            {
-                Mono.Cecil.GenericInstanceType _typegen = null;
-                _typegen = method.DeclaringType as Mono.Cecil.GenericInstanceType;
-                Mono.Cecil.GenericInstanceMethod gm = method as Mono.Cecil.GenericInstanceMethod;
-                MethodParamList _methodgen = null;
-                if (gm != null)
-                    _methodgen = new MethodParamList(env, gm);
-                foreach (var p in method.Parameters)
-                {
-                    string paramname = p.ParameterType.FullName;
-
-                    if (p.ParameterType.IsGenericParameter)
-                    {
-                        if (p.ParameterType.Name.Contains("!!"))
-                        {
-                            int index = int.Parse(p.ParameterType.Name.Substring(2));
-                            paramname = _methodgen[index].FullName;
-                        }
-                        else if (p.ParameterType.Name.Contains("!"))
-                        {
-                            int index = int.Parse(p.ParameterType.Name.Substring(1));
-                            paramname = _typegen.GenericArguments[index].FullName;
-                        }
-                    }
-
-                    if (paramname.Contains("!!"))
-                    {
-                        //string typename = param.ParameterType.FullName;
-                        for (int i = 0; i < _methodgen.Count; i++)
-                        {
-                            string pp = "!!" + i.ToString();
-                            paramname = paramname.Replace(pp, _methodgen[i].FullName);
-                        }
-                        //this.Add(GetTType(env, p, _methodgen));
-                    }
-
-                    if (paramname.Contains("!"))//函数有T
-                    {
-                        var gens = (method.DeclaringType as Mono.Cecil.GenericInstanceType).GenericArguments;
-                        for (int i = 0; i < gens.Count; i++)
-                        {
-                            string pp = "!" + i.ToString();
-                            paramname = paramname.Replace(pp, gens[i].FullName);
-                        }
-                    }
-                    //else
-                    {
-                        var type = env.GetType(paramname);
-                        if(type.IsEnum())
-                        {
-                            type = env.GetType(type.TypeForSystem);
-                        }
-                        this.Add(type);
-                    }
-
-                }
-            }
-        }
-        public MethodParamList(ICLRSharp_Environment env, Mono.Collections.Generic.Collection<Mono.Cecil.Cil.VariableDefinition> ps)
-        {
-            foreach (var p in ps)
-            {
-                string paramname = p.VariableType.FullName;
-                var type = env.GetType(paramname);
-                if (type!=null&&type.IsEnum())
-                {
-                    type = env.GetType(type.TypeForSystem);
-                }
-                this.Add(type);
-
-            }
-        }
-        static ICLRType GetTType(ICLRSharp_Environment env, Mono.Cecil.ParameterDefinition param, MethodParamList _methodgen)
-        {
-            string typename = param.ParameterType.FullName;
-            for (int i = 0; i < _methodgen.Count; i++)
-            {
-                string p = "!!" + i.ToString();
-                typename = typename.Replace(p, _methodgen[i].FullName);
-            }
-            return env.GetType(typename);
-        }
-        public MethodParamList(ICLRSharp_Environment env, Mono.Cecil.GenericInstanceMethod method)
-        {
-            foreach (var p in method.GenericArguments)
-            {
-                string paramname = p.FullName;
-                if (p.IsGenericParameter)
-                {
-
-                    var typegen = method.DeclaringType as Mono.Cecil.GenericInstanceType;
-                    if (p.Name[0] == '!')
-                    {
-                        int index = int.Parse(p.Name.Substring(1));
-                        paramname = typegen.GenericArguments[index].FullName;
-                    }
-                }
-                var type = env.GetType(paramname);
-                if (type.IsEnum())
-                {
-                    type = env.GetType(type.TypeForSystem);
-                }
-                this.Add(type);
-            }
-        }
-
-        public MethodParamList(ICLRSharp_Environment env, System.Reflection.MethodBase method)
-        {
-            foreach (var p in method.GetParameters())
-            {
-                this.Add(env.GetType(p.ParameterType));
-            }
-        }
-        public override int GetHashCode()
-        {
-            return this.ToString().GetHashCode();
-        }
-        public override string ToString()
-        {
-            if (name == null)
-            {
-                name = "";
-                foreach (var t in this)
-                {
-                    name += t.ToString() + ";";
-                }
-            }
-            return name;
-        }
-        string name = null;
-        System.Type[] SystemType = null;
-        public System.Type[] ToArraySystem()
-        {
-            if (SystemType == null)
-            {
-                SystemType = new System.Type[this.Count];
-                for (int i = 0; i < this.Count; i++)
-                {
-
-                    SystemType[i] = this[i].TypeForSystem;
-                }
-            }
-            return SystemType;
-        }
-    }
-
-}

+ 0 - 8
Unity/Assets/Plugins/CLRSharp/CLRSharp/Type/Type_List.cs.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 92f42f56d2bb2c64c9da323d08501d33
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 

+ 0 - 9
Unity/Assets/Plugins/Mono.Cecil.20.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 9f7202dd5262d4d48a389953b1f78416
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 6493bb458315e2945b924b174bc21c9b
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: bcb1a1f98e9190c49baa3eddf4354123
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 252
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Code.cs

@@ -1,252 +0,0 @@
-//
-// Code.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public enum Code {
-		Nop,
-		Break,
-		Ldarg_0,
-		Ldarg_1,
-		Ldarg_2,
-		Ldarg_3,
-		Ldloc_0,
-		Ldloc_1,
-		Ldloc_2,
-		Ldloc_3,
-		Stloc_0,
-		Stloc_1,
-		Stloc_2,
-		Stloc_3,
-		Ldarg_S,
-		Ldarga_S,
-		Starg_S,
-		Ldloc_S,
-		Ldloca_S,
-		Stloc_S,
-		Ldnull,
-		Ldc_I4_M1,
-		Ldc_I4_0,
-		Ldc_I4_1,
-		Ldc_I4_2,
-		Ldc_I4_3,
-		Ldc_I4_4,
-		Ldc_I4_5,
-		Ldc_I4_6,
-		Ldc_I4_7,
-		Ldc_I4_8,
-		Ldc_I4_S,
-		Ldc_I4,
-		Ldc_I8,
-		Ldc_R4,
-		Ldc_R8,
-		Dup,
-		Pop,
-		Jmp,
-		Call,
-		Calli,
-		Ret,
-		Br_S,
-		Brfalse_S,
-		Brtrue_S,
-		Beq_S,
-		Bge_S,
-		Bgt_S,
-		Ble_S,
-		Blt_S,
-		Bne_Un_S,
-		Bge_Un_S,
-		Bgt_Un_S,
-		Ble_Un_S,
-		Blt_Un_S,
-		Br,
-		Brfalse,
-		Brtrue,
-		Beq,
-		Bge,
-		Bgt,
-		Ble,
-		Blt,
-		Bne_Un,
-		Bge_Un,
-		Bgt_Un,
-		Ble_Un,
-		Blt_Un,
-		Switch,
-		Ldind_I1,
-		Ldind_U1,
-		Ldind_I2,
-		Ldind_U2,
-		Ldind_I4,
-		Ldind_U4,
-		Ldind_I8,
-		Ldind_I,
-		Ldind_R4,
-		Ldind_R8,
-		Ldind_Ref,
-		Stind_Ref,
-		Stind_I1,
-		Stind_I2,
-		Stind_I4,
-		Stind_I8,
-		Stind_R4,
-		Stind_R8,
-		Add,
-		Sub,
-		Mul,
-		Div,
-		Div_Un,
-		Rem,
-		Rem_Un,
-		And,
-		Or,
-		Xor,
-		Shl,
-		Shr,
-		Shr_Un,
-		Neg,
-		Not,
-		Conv_I1,
-		Conv_I2,
-		Conv_I4,
-		Conv_I8,
-		Conv_R4,
-		Conv_R8,
-		Conv_U4,
-		Conv_U8,
-		Callvirt,
-		Cpobj,
-		Ldobj,
-		Ldstr,
-		Newobj,
-		Castclass,
-		Isinst,
-		Conv_R_Un,
-		Unbox,
-		Throw,
-		Ldfld,
-		Ldflda,
-		Stfld,
-		Ldsfld,
-		Ldsflda,
-		Stsfld,
-		Stobj,
-		Conv_Ovf_I1_Un,
-		Conv_Ovf_I2_Un,
-		Conv_Ovf_I4_Un,
-		Conv_Ovf_I8_Un,
-		Conv_Ovf_U1_Un,
-		Conv_Ovf_U2_Un,
-		Conv_Ovf_U4_Un,
-		Conv_Ovf_U8_Un,
-		Conv_Ovf_I_Un,
-		Conv_Ovf_U_Un,
-		Box,
-		Newarr,
-		Ldlen,
-		Ldelema,
-		Ldelem_I1,
-		Ldelem_U1,
-		Ldelem_I2,
-		Ldelem_U2,
-		Ldelem_I4,
-		Ldelem_U4,
-		Ldelem_I8,
-		Ldelem_I,
-		Ldelem_R4,
-		Ldelem_R8,
-		Ldelem_Ref,
-		Stelem_I,
-		Stelem_I1,
-		Stelem_I2,
-		Stelem_I4,
-		Stelem_I8,
-		Stelem_R4,
-		Stelem_R8,
-		Stelem_Ref,
-		Ldelem_Any,
-		Stelem_Any,
-		Unbox_Any,
-		Conv_Ovf_I1,
-		Conv_Ovf_U1,
-		Conv_Ovf_I2,
-		Conv_Ovf_U2,
-		Conv_Ovf_I4,
-		Conv_Ovf_U4,
-		Conv_Ovf_I8,
-		Conv_Ovf_U8,
-		Refanyval,
-		Ckfinite,
-		Mkrefany,
-		Ldtoken,
-		Conv_U2,
-		Conv_U1,
-		Conv_I,
-		Conv_Ovf_I,
-		Conv_Ovf_U,
-		Add_Ovf,
-		Add_Ovf_Un,
-		Mul_Ovf,
-		Mul_Ovf_Un,
-		Sub_Ovf,
-		Sub_Ovf_Un,
-		Endfinally,
-		Leave,
-		Leave_S,
-		Stind_I,
-		Conv_U,
-		Arglist,
-		Ceq,
-		Cgt,
-		Cgt_Un,
-		Clt,
-		Clt_Un,
-		Ldftn,
-		Ldvirtftn,
-		Ldarg,
-		Ldarga,
-		Starg,
-		Ldloc,
-		Ldloca,
-		Stloc,
-		Localloc,
-		Endfilter,
-		Unaligned,
-		Volatile,
-		Tail,
-		Initobj,
-		Constrained,
-		Cpblk,
-		Initblk,
-		No,
-		Rethrow,
-		Sizeof,
-		Refanytype,
-		Readonly,
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Code.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 0666e6f01bb19a0469c318132aa7d50f
-timeCreated: 1463825960
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 394
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeReader.cs

@@ -1,394 +0,0 @@
-//
-// CodeReader.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Cecil.PE;
-using Mono.Collections.Generic;
-
-using RVA = System.UInt32;
-
-namespace Mono.Cecil.Cil
-{
-
-    sealed class CodeReader : ByteBuffer
-    {
-
-        readonly internal MetadataReader reader;
-
-        int start;
-        Section code_section;
-
-        MethodDefinition method;
-        MethodBody body;
-
-        int Offset
-        {
-            get { return base.position - start; }
-        }
-
-        public CodeReader(Section section, MetadataReader reader)
-            : base(section.Data)
-        {
-            this.code_section = section;
-            this.reader = reader;
-        }
-
-        public MethodBody ReadMethodBody(MethodDefinition method)
-        {
-            this.method = method;
-            this.body = new MethodBody(method);
-
-            reader.context = method;
-
-            ReadMethodBody();
-
-            return this.body;
-        }
-
-        public void MoveTo(int rva)
-        {
-            if (!IsInSection(rva))
-            {
-                code_section = reader.image.GetSectionAtVirtualAddress((uint)rva);
-                Reset(code_section.Data);
-            }
-
-            base.position = rva - (int)code_section.VirtualAddress;
-        }
-
-        bool IsInSection(int rva)
-        {
-            return code_section.VirtualAddress <= rva && rva < code_section.VirtualAddress + code_section.SizeOfRawData;
-        }
-
-        void ReadMethodBody()
-        {
-            MoveTo(method.RVA);
-
-            var flags = ReadByte();
-            switch (flags & 0x3)
-            {
-                case 0x2: // tiny
-                    body.code_size = flags >> 2;
-                    body.MaxStackSize = 8;
-                    ReadCode();
-                    break;
-                case 0x3: // fat
-                    base.position--;
-                    ReadFatMethod();
-                    break;
-                default:
-                    throw new InvalidOperationException();
-            }
-
-            var symbol_reader = reader.module.symbol_reader;
-
-            if (symbol_reader != null)
-            {
-                var instructions = body.Instructions;
-                symbol_reader.Read(body, offset => GetInstruction(instructions, offset));
-            }
-        }
-
-        void ReadFatMethod()
-        {
-            var flags = ReadUInt16();
-            body.max_stack_size = ReadUInt16();
-            body.code_size = (int)ReadUInt32();
-            body.local_var_token = new MetadataToken(ReadUInt32());
-            body.init_locals = (flags & 0x10) != 0;
-
-            if (body.local_var_token.RID != 0)
-                body.variables = ReadVariables(body.local_var_token);
-
-            ReadCode();
-
-            if ((flags & 0x8) != 0)
-                ReadSection();
-        }
-
-        public VariableDefinitionCollection ReadVariables(MetadataToken local_var_token)
-        {
-            var position = reader.position;
-            var variables = reader.ReadVariables(local_var_token);
-            reader.position = position;
-
-            return variables;
-        }
-
-        void ReadCode()
-        {
-            start = position;
-            var code_size = body.code_size;
-
-            if (code_size < 0 || buffer.Length <= (uint)(code_size + position))
-                code_size = 0;
-
-            var end = start + code_size;
-            var instructions = body.instructions = new InstructionCollection((code_size + 1) / 2);
-
-            while (position < end)
-            {
-                var offset = base.position - start;
-                var opcode = ReadOpCode();
-                var current = new Instruction(offset, opcode);
-
-                if (opcode.OperandType != OperandType.InlineNone)
-                    current.operand = ReadOperand(current);
-
-                instructions.Add(current);
-            }
-
-            ResolveBranches(instructions);
-        }
-
-        OpCode ReadOpCode()
-        {
-            var il_opcode = ReadByte();
-            return il_opcode != 0xfe
-                ? OpCodes.OneByteOpCode[il_opcode]
-                : OpCodes.TwoBytesOpCode[ReadByte()];
-        }
-
-        object ReadOperand(Instruction instruction)
-        {
-            switch (instruction.opcode.OperandType)
-            {
-                case OperandType.InlineSwitch:
-                    var length = ReadInt32();
-                    var base_offset = Offset + (4 * length);
-                    var branches = new int[length];
-                    for (int i = 0; i < length; i++)
-                        branches[i] = base_offset + ReadInt32();
-                    return branches;
-                case OperandType.ShortInlineBrTarget:
-                    return ReadSByte() + Offset;
-                case OperandType.InlineBrTarget:
-                    return ReadInt32() + Offset;
-                case OperandType.ShortInlineI:
-                    if (instruction.opcode == OpCodes.Ldc_I4_S)
-                        return ReadSByte();
-
-                    return ReadByte();
-                case OperandType.InlineI:
-                    return ReadInt32();
-                case OperandType.ShortInlineR:
-                    return ReadSingle();
-                case OperandType.InlineR:
-                    return ReadDouble();
-                case OperandType.InlineI8:
-                    return ReadInt64();
-                case OperandType.ShortInlineVar:
-                    return GetVariable(ReadByte());
-                case OperandType.InlineVar:
-                    return GetVariable(ReadUInt16());
-                case OperandType.ShortInlineArg:
-                    return GetParameter(ReadByte());
-                case OperandType.InlineArg:
-                    return GetParameter(ReadUInt16());
-                case OperandType.InlineSig:
-                    return GetCallSite(ReadToken());
-                case OperandType.InlineString:
-                    return GetString(ReadToken());
-                case OperandType.InlineTok:
-                case OperandType.InlineType:
-                case OperandType.InlineMethod:
-                case OperandType.InlineField:
-                    return reader.LookupToken(ReadToken());
-                default:
-                    throw new NotSupportedException();
-            }
-        }
-
-        public string GetString(MetadataToken token)
-        {
-            return reader.image.UserStringHeap.Read(token.RID);
-        }
-
-        public ParameterDefinition GetParameter(int index)
-        {
-            return Mixin.GetParameter(body, index);
-        }
-
-        public VariableDefinition GetVariable(int index)
-        {
-            return Mixin.GetVariable(body, index);
-        }
-
-        public CallSite GetCallSite(MetadataToken token)
-        {
-            return reader.ReadCallSite(token);
-        }
-
-        void ResolveBranches(Collection<Instruction> instructions)
-        {
-            var items = instructions.items;
-            var size = instructions.size;
-
-            for (int i = 0; i < size; i++)
-            {
-                var instruction = items[i];
-                switch (instruction.opcode.OperandType)
-                {
-                    case OperandType.ShortInlineBrTarget:
-                    case OperandType.InlineBrTarget:
-                        instruction.operand = GetInstruction((int)instruction.operand);
-                        break;
-                    case OperandType.InlineSwitch:
-                        var offsets = (int[])instruction.operand;
-                        var branches = new Instruction[offsets.Length];
-                        for (int j = 0; j < offsets.Length; j++)
-                            branches[j] = GetInstruction(offsets[j]);
-
-                        instruction.operand = branches;
-                        break;
-                }
-            }
-        }
-
-        Instruction GetInstruction(int offset)
-        {
-            return GetInstruction(body.Instructions, offset);
-        }
-
-        static Instruction GetInstruction(Collection<Instruction> instructions, int offset)
-        {
-            var size = instructions.size;
-            var items = instructions.items;
-            if (offset < 0 || offset > items[size - 1].offset)
-                return null;
-
-            int min = 0;
-            int max = size - 1;
-            while (min <= max)
-            {
-                int mid = min + ((max - min) / 2);
-                var instruction = items[mid];
-                var instruction_offset = instruction.offset;
-
-                if (offset == instruction_offset)
-                    return instruction;
-
-                if (offset < instruction_offset)
-                    max = mid - 1;
-                else
-                    min = mid + 1;
-            }
-
-            return null;
-        }
-
-        void ReadSection()
-        {
-            Align(4);
-
-            const byte fat_format = 0x40;
-            const byte more_sects = 0x80;
-
-            var flags = ReadByte();
-            if ((flags & fat_format) == 0)
-                ReadSmallSection();
-            else
-                ReadFatSection();
-
-            if ((flags & more_sects) != 0)
-                ReadSection();
-        }
-
-        void ReadSmallSection()
-        {
-            var count = ReadByte() / 12;
-            Advance(2);
-
-            ReadExceptionHandlers(
-                count,
-                () => (int)ReadUInt16(),
-                () => (int)ReadByte());
-        }
-
-        void ReadFatSection()
-        {
-            position--;
-            var count = (ReadInt32() >> 8) / 24;
-
-            ReadExceptionHandlers(
-                count,
-                ReadInt32,
-                ReadInt32);
-        }
-
-        // inline ?
-        void ReadExceptionHandlers(int count, Func<int> read_entry, Func<int> read_length)
-        {
-            for (int i = 0; i < count; i++)
-            {
-                var handler = new ExceptionHandler(
-                    (ExceptionHandlerType)(read_entry() & 0x7));
-
-                handler.TryStart = GetInstruction(read_entry());
-                handler.TryEnd = GetInstruction(handler.TryStart.Offset + read_length());
-
-                handler.HandlerStart = GetInstruction(read_entry());
-                handler.HandlerEnd = GetInstruction(handler.HandlerStart.Offset + read_length());
-
-                ReadExceptionHandlerSpecific(handler);
-
-                this.body.ExceptionHandlers.Add(handler);
-            }
-        }
-
-        void ReadExceptionHandlerSpecific(ExceptionHandler handler)
-        {
-            switch (handler.HandlerType)
-            {
-                case ExceptionHandlerType.Catch:
-                    handler.CatchType = (TypeReference)reader.LookupToken(ReadToken());
-                    break;
-                case ExceptionHandlerType.Filter:
-                    handler.FilterStart = GetInstruction(ReadInt32());
-                    break;
-                default:
-                    Advance(4);
-                    break;
-            }
-        }
-
-        void Align(int align)
-        {
-            align--;
-            Advance(((position + align) & ~align) - position);
-        }
-
-        public MetadataToken ReadToken()
-        {
-            return new MetadataToken(ReadUInt32());
-        }
-
-    }
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeReader.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 21014d572ca330947a91728d7d125280
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 38
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeWriter.cs

@@ -1,38 +0,0 @@
-//
-// CodeWriter.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-
-using Mono.Collections.Generic;
-
-using Mono.Cecil.Metadata;
-using Mono.Cecil.PE;
-
-using RVA = System.UInt32;
-

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/CodeWriter.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 7b6b27f5c4594e241a28c04d9b559370
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 112
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Document.cs

@@ -1,112 +0,0 @@
-//
-// Document.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace Mono.Cecil.Cil {
-
-	public enum DocumentType {
-		Other,
-		Text,
-	}
-
-	public enum DocumentHashAlgorithm {
-		None,
-		MD5,
-		SHA1,
-	}
-
-	public enum DocumentLanguage {
-		Other,
-		C,
-		Cpp,
-		CSharp,
-		Basic,
-		Java,
-		Cobol,
-		Pascal,
-		Cil,
-		JScript,
-		Smc,
-		MCpp,
-		FSharp,
-	}
-
-	public enum DocumentLanguageVendor {
-		Other,
-		Microsoft,
-	}
-
-	public sealed class Document {
-
-		string url;
-
-		byte type;
-		byte hash_algorithm;
-		byte language;
-		byte language_vendor;
-
-		byte [] hash;
-
-		public string Url {
-			get { return url; }
-			set { url = value; }
-		}
-
-		public DocumentType Type {
-			get { return (DocumentType) type; }
-			set { type = (byte) value; }
-		}
-
-		public DocumentHashAlgorithm HashAlgorithm {
-			get { return (DocumentHashAlgorithm) hash_algorithm; }
-			set { hash_algorithm = (byte) value; }
-		}
-
-		public DocumentLanguage Language {
-			get { return (DocumentLanguage) language; }
-			set { language = (byte) value; }
-		}
-
-		public DocumentLanguageVendor LanguageVendor {
-			get { return (DocumentLanguageVendor) language_vendor; }
-			set { language_vendor = (byte) value; }
-		}
-
-		public byte [] Hash {
-			get { return hash; }
-			set { hash = value; }
-		}
-
-		public Document (string url)
-		{
-			this.url = url;
-			this.hash = Empty<byte>.Array;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Document.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 482e3a42afc39e042ac7f9552de2a3fd
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 89
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ExceptionHandler.cs

@@ -1,89 +0,0 @@
-//
-// ExceptionHandler.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public enum ExceptionHandlerType {
-		Catch = 0,
-		Filter = 1,
-		Finally = 2,
-		Fault = 4,
-	}
-
-	public sealed class ExceptionHandler {
-
-		Instruction try_start;
-		Instruction try_end;
-		Instruction filter_start;
-		Instruction handler_start;
-		Instruction handler_end;
-
-		TypeReference catch_type;
-		ExceptionHandlerType handler_type;
-
-		public Instruction TryStart {
-			get { return try_start; }
-			set { try_start = value; }
-		}
-
-		public Instruction TryEnd {
-			get { return try_end; }
-			set { try_end = value; }
-		}
-
-		public Instruction FilterStart {
-			get { return filter_start; }
-			set { filter_start = value; }
-		}
-
-		public Instruction HandlerStart {
-			get { return handler_start; }
-			set { handler_start = value; }
-		}
-
-		public Instruction HandlerEnd {
-			get { return handler_end; }
-			set { handler_end = value; }
-		}
-
-		public TypeReference CatchType {
-			get { return catch_type; }
-			set { catch_type = value; }
-		}
-
-		public ExceptionHandlerType HandlerType {
-			get { return handler_type; }
-			set { handler_type = value; }
-		}
-
-		public ExceptionHandler (ExceptionHandlerType handlerType)
-		{
-			this.handler_type = handlerType;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ExceptionHandler.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 0184ffeda340ced43a1bc0263dee5856
-timeCreated: 1463825960
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 278
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ILProcessor.cs

@@ -1,278 +0,0 @@
-//
-// ILProcessor.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Collections.Generic;
-
-namespace Mono.Cecil.Cil {
-
-	public sealed class ILProcessor {
-
-		readonly MethodBody body;
-		readonly Collection<Instruction> instructions;
-
-		public MethodBody Body {
-			get { return body; }
-		}
-
-		internal ILProcessor (MethodBody body)
-		{
-			this.body = body;
-			this.instructions = body.Instructions;
-		}
-
-		public Instruction Create (OpCode opcode)
-		{
-			return Instruction.Create (opcode);
-		}
-
-		public Instruction Create (OpCode opcode, TypeReference type)
-		{
-			return Instruction.Create (opcode, type);
-		}
-
-		public Instruction Create (OpCode opcode, CallSite site)
-		{
-			return Instruction.Create (opcode, site);
-		}
-
-		public Instruction Create (OpCode opcode, MethodReference method)
-		{
-			return Instruction.Create (opcode, method);
-		}
-
-		public Instruction Create (OpCode opcode, FieldReference field)
-		{
-			return Instruction.Create (opcode, field);
-		}
-
-		public Instruction Create (OpCode opcode, string value)
-		{
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, sbyte value)
-		{
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, byte value)
-		{
-			if (opcode.OperandType == OperandType.ShortInlineVar)
-				return Instruction.Create (opcode, body.Variables [value]);
-
-			if (opcode.OperandType == OperandType.ShortInlineArg)
-				return Instruction.Create (opcode, Mixin.GetParameter (body,value));
-
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, int value)
-		{
-			if (opcode.OperandType == OperandType.InlineVar)
-				return Instruction.Create (opcode, body.Variables [value]);
-
-			if (opcode.OperandType == OperandType.InlineArg)
-				return Instruction.Create (opcode, Mixin.GetParameter (body,value));
-
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, long value)
-		{
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, float value)
-		{
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, double value)
-		{
-			return Instruction.Create (opcode, value);
-		}
-
-		public Instruction Create (OpCode opcode, Instruction target)
-		{
-			return Instruction.Create (opcode, target);
-		}
-
-		public Instruction Create (OpCode opcode, Instruction [] targets)
-		{
-			return Instruction.Create (opcode, targets);
-		}
-
-		public Instruction Create (OpCode opcode, VariableDefinition variable)
-		{
-			return Instruction.Create (opcode, variable);
-		}
-
-		public Instruction Create (OpCode opcode, ParameterDefinition parameter)
-		{
-			return Instruction.Create (opcode, parameter);
-		}
-
-		public void Emit (OpCode opcode)
-		{
-			Append (Create (opcode));
-		}
-
-		public void Emit (OpCode opcode, TypeReference type)
-		{
-			Append (Create (opcode, type));
-		}
-
-		public void Emit (OpCode opcode, MethodReference method)
-		{
-			Append (Create (opcode, method));
-		}
-
-		public void Emit (OpCode opcode, CallSite site)
-		{
-			Append (Create (opcode, site));
-		}
-
-		public void Emit (OpCode opcode, FieldReference field)
-		{
-			Append (Create (opcode, field));
-		}
-
-		public void Emit (OpCode opcode, string value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, byte value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, sbyte value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, int value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, long value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, float value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, double value)
-		{
-			Append (Create (opcode, value));
-		}
-
-		public void Emit (OpCode opcode, Instruction target)
-		{
-			Append (Create (opcode, target));
-		}
-
-		public void Emit (OpCode opcode, Instruction [] targets)
-		{
-			Append (Create (opcode, targets));
-		}
-
-		public void Emit (OpCode opcode, VariableDefinition variable)
-		{
-			Append (Create (opcode, variable));
-		}
-
-		public void Emit (OpCode opcode, ParameterDefinition parameter)
-		{
-			Append (Create (opcode, parameter));
-		}
-
-		public void InsertBefore (Instruction target, Instruction instruction)
-		{
-			if (target == null)
-				throw new ArgumentNullException ("target");
-			if (instruction == null)
-				throw new ArgumentNullException ("instruction");
-
-			var index = instructions.IndexOf (target);
-			if (index == -1)
-				throw new ArgumentOutOfRangeException ("target");
-
-			instructions.Insert (index, instruction);
-		}
-
-		public void InsertAfter (Instruction target, Instruction instruction)
-		{
-			if (target == null)
-				throw new ArgumentNullException ("target");
-			if (instruction == null)
-				throw new ArgumentNullException ("instruction");
-
-			var index = instructions.IndexOf (target);
-			if (index == -1)
-				throw new ArgumentOutOfRangeException ("target");
-
-			instructions.Insert (index + 1, instruction);
-		}
-
-		public void Append (Instruction instruction)
-		{
-			if (instruction == null)
-				throw new ArgumentNullException ("instruction");
-
-			instructions.Add (instruction);
-		}
-
-		public void Replace (Instruction target, Instruction instruction)
-		{
-			if (target == null)
-				throw new ArgumentNullException ("target");
-			if (instruction == null)
-				throw new ArgumentNullException ("instruction");
-
-			InsertAfter (target, instruction);
-			Remove (target);
-		}
-
-		public void Remove (Instruction instruction)
-		{
-			if (instruction == null)
-				throw new ArgumentNullException ("instruction");
-
-			if (!instructions.Remove (instruction))
-				throw new ArgumentOutOfRangeException ("instruction");
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/ILProcessor.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: b138a591a4229fa42a965957e1f615f8
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 321
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Instruction.cs

@@ -1,321 +0,0 @@
-//
-// Instruction.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Text;
-
-namespace Mono.Cecil.Cil {
-
-	public sealed class Instruction {
-
-		internal int offset;
-		internal OpCode opcode;
-		internal object operand;
-
-		internal Instruction previous;
-		internal Instruction next;
-
-		SequencePoint sequence_point;
-
-		public int Offset {
-			get { return offset; }
-			set { offset = value; }
-		}
-
-		public OpCode OpCode {
-			get { return opcode; }
-			set { opcode = value; }
-		}
-
-		public object Operand {
-			get { return operand; }
-			set { operand = value; }
-		}
-
-		public Instruction Previous {
-			get { return previous; }
-			set { previous = value; }
-		}
-
-		public Instruction Next {
-			get { return next; }
-			set { next = value; }
-		}
-
-		public SequencePoint SequencePoint {
-			get { return sequence_point; }
-			set { sequence_point = value; }
-		}
-
-		internal Instruction (int offset, OpCode opCode)
-		{
-			this.offset = offset;
-			this.opcode = opCode;
-		}
-
-		internal Instruction (OpCode opcode, object operand)
-		{
-			this.opcode = opcode;
-			this.operand = operand;
-		}
-
-		public int GetSize ()
-		{
-			int size = opcode.Size;
-
-			switch (opcode.OperandType) {
-			case OperandType.InlineSwitch:
-				return size + (1 + ((Instruction []) operand).Length) * 4;
-			case OperandType.InlineI8:
-			case OperandType.InlineR:
-				return size + 8;
-			case OperandType.InlineBrTarget:
-			case OperandType.InlineField:
-			case OperandType.InlineI:
-			case OperandType.InlineMethod:
-			case OperandType.InlineString:
-			case OperandType.InlineTok:
-			case OperandType.InlineType:
-			case OperandType.ShortInlineR:
-			case OperandType.InlineSig:
-				return size + 4;
-			case OperandType.InlineArg:
-			case OperandType.InlineVar:
-				return size + 2;
-			case OperandType.ShortInlineBrTarget:
-			case OperandType.ShortInlineI:
-			case OperandType.ShortInlineArg:
-			case OperandType.ShortInlineVar:
-				return size + 1;
-			default:
-				return size;
-			}
-		}
-
-		public override string ToString ()
-		{
-			var instruction = new StringBuilder ();
-
-			AppendLabel (instruction, this);
-			instruction.Append (':');
-			instruction.Append (' ');
-			instruction.Append (opcode.Name);
-
-			if (operand == null)
-				return instruction.ToString ();
-
-			instruction.Append (' ');
-
-			switch (opcode.OperandType) {
-			case OperandType.ShortInlineBrTarget:
-			case OperandType.InlineBrTarget:
-				AppendLabel (instruction, (Instruction) operand);
-				break;
-			case OperandType.InlineSwitch:
-				var labels = (Instruction []) operand;
-				for (int i = 0; i < labels.Length; i++) {
-					if (i > 0)
-						instruction.Append (',');
-
-					AppendLabel (instruction, labels [i]);
-				}
-				break;
-			case OperandType.InlineString:
-				instruction.Append ('\"');
-				instruction.Append (operand);
-				instruction.Append ('\"');
-				break;
-			default:
-				instruction.Append (operand);
-				break;
-			}
-
-			return instruction.ToString ();
-		}
-
-		static void AppendLabel (StringBuilder builder, Instruction instruction)
-		{
-			builder.Append ("IL_");
-			builder.Append (instruction.offset.ToString ("x4"));
-		}
-
-		public static Instruction Create (OpCode opcode)
-		{
-			if (opcode.OperandType != OperandType.InlineNone)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, null);
-		}
-
-		public static Instruction Create (OpCode opcode, TypeReference type)
-		{
-			if (type == null)
-				throw new ArgumentNullException ("type");
-			if (opcode.OperandType != OperandType.InlineType &&
-				opcode.OperandType != OperandType.InlineTok)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, type);
-		}
-
-		public static Instruction Create (OpCode opcode, CallSite site)
-		{
-			if (site == null)
-				throw new ArgumentNullException ("site");
-			if (opcode.Code != Code.Calli)
-				throw new ArgumentException ("code");
-
-			return new Instruction (opcode, site);
-		}
-
-		public static Instruction Create (OpCode opcode, MethodReference method)
-		{
-			if (method == null)
-				throw new ArgumentNullException ("method");
-			if (opcode.OperandType != OperandType.InlineMethod &&
-				opcode.OperandType != OperandType.InlineTok)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, method);
-		}
-
-		public static Instruction Create (OpCode opcode, FieldReference field)
-		{
-			if (field == null)
-				throw new ArgumentNullException ("field");
-			if (opcode.OperandType != OperandType.InlineField &&
-				opcode.OperandType != OperandType.InlineTok)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, field);
-		}
-
-		public static Instruction Create (OpCode opcode, string value)
-		{
-			if (value == null)
-				throw new ArgumentNullException ("value");
-			if (opcode.OperandType != OperandType.InlineString)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, sbyte value)
-		{
-			if (opcode.OperandType != OperandType.ShortInlineI &&
-				opcode != OpCodes.Ldc_I4_S)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, byte value)
-		{
-			if (opcode.OperandType != OperandType.ShortInlineI ||
-				opcode == OpCodes.Ldc_I4_S)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, int value)
-		{
-			if (opcode.OperandType != OperandType.InlineI)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, long value)
-		{
-			if (opcode.OperandType != OperandType.InlineI8)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, float value)
-		{
-			if (opcode.OperandType != OperandType.ShortInlineR)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, double value)
-		{
-			if (opcode.OperandType != OperandType.InlineR)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, value);
-		}
-
-		public static Instruction Create (OpCode opcode, Instruction target)
-		{
-			if (target == null)
-				throw new ArgumentNullException ("target");
-			if (opcode.OperandType != OperandType.InlineBrTarget &&
-				opcode.OperandType != OperandType.ShortInlineBrTarget)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, target);
-		}
-
-		public static Instruction Create (OpCode opcode, Instruction [] targets)
-		{
-			if (targets == null)
-				throw new ArgumentNullException ("targets");
-			if (opcode.OperandType != OperandType.InlineSwitch)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, targets);
-		}
-
-		public static Instruction Create (OpCode opcode, VariableDefinition variable)
-		{
-			if (variable == null)
-				throw new ArgumentNullException ("variable");
-			if (opcode.OperandType != OperandType.ShortInlineVar &&
-				opcode.OperandType != OperandType.InlineVar)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, variable);
-		}
-
-		public static Instruction Create (OpCode opcode, ParameterDefinition parameter)
-		{
-			if (parameter == null)
-				throw new ArgumentNullException ("parameter");
-			if (opcode.OperandType != OperandType.ShortInlineArg &&
-				opcode.OperandType != OperandType.InlineArg)
-				throw new ArgumentException ("opcode");
-
-			return new Instruction (opcode, parameter);
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Instruction.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 00d171116a4407f4c97d7ba1e327e290
-timeCreated: 1463825960
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 267
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/MethodBody.cs

@@ -1,267 +0,0 @@
-//
-// MethodBody.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Threading;
-
-using Mono.Collections.Generic;
-
-namespace Mono.Cecil.Cil
-{
-
-    public sealed class MethodBody : IVariableDefinitionProvider
-    {
-
-        readonly internal MethodDefinition method;
-
-        internal ParameterDefinition this_parameter;
-        internal int max_stack_size;
-        internal int code_size;
-        internal bool init_locals;
-        internal MetadataToken local_var_token;
-
-        internal Collection<Instruction> instructions;
-        internal Collection<ExceptionHandler> exceptions;
-        internal Collection<VariableDefinition> variables;
-        Scope scope;
-
-        public MethodDefinition Method
-        {
-            get { return method; }
-        }
-
-        public int MaxStackSize
-        {
-            get { return max_stack_size; }
-            set { max_stack_size = value; }
-        }
-
-        public int CodeSize
-        {
-            get { return code_size; }
-        }
-
-        public bool InitLocals
-        {
-            get { return init_locals; }
-            set { init_locals = value; }
-        }
-
-        public MetadataToken LocalVarToken
-        {
-            get { return local_var_token; }
-            set { local_var_token = value; }
-        }
-
-        public Collection<Instruction> Instructions
-        {
-            get { return instructions ?? (instructions = new InstructionCollection()); }
-        }
-
-        public bool HasExceptionHandlers
-        {
-            get { return !Mixin.IsNullOrEmpty(exceptions); }
-        }
-
-        public Collection<ExceptionHandler> ExceptionHandlers
-        {
-            get { return exceptions ?? (exceptions = new Collection<ExceptionHandler>()); }
-        }
-
-        public bool HasVariables
-        {
-            get { return !Mixin.IsNullOrEmpty(variables); }
-        }
-
-        public Collection<VariableDefinition> Variables
-        {
-            get { return variables ?? (variables = new VariableDefinitionCollection()); }
-        }
-
-        public Scope Scope
-        {
-            get { return scope; }
-            set { scope = value; }
-        }
-
-        public ParameterDefinition ThisParameter
-        {
-            get
-            {
-                if (method == null || method.DeclaringType == null)
-                    throw new NotSupportedException();
-
-                if (!method.HasThis)
-                    return null;
-
-                if (this_parameter == null)
-                    this_parameter = ThisParameterFor(method);
-
-                return this_parameter;
-            }
-        }
-
-        static ParameterDefinition ThisParameterFor(MethodDefinition method)
-        {
-            var declaring_type = method.DeclaringType;
-            var type = declaring_type.IsValueType || declaring_type.IsPrimitive
-                ? new PointerType(declaring_type)
-                : declaring_type as TypeReference;
-
-            return new ParameterDefinition(type, method);
-        }
-
-        public MethodBody(MethodDefinition method)
-        {
-            this.method = method;
-        }
-
-        public ILProcessor GetILProcessor()
-        {
-            return new ILProcessor(this);
-        }
-    }
-
-    public interface IVariableDefinitionProvider
-    {
-        bool HasVariables { get; }
-        Collection<VariableDefinition> Variables { get; }
-    }
-
-    class VariableDefinitionCollection : Collection<VariableDefinition>
-    {
-
-        internal VariableDefinitionCollection()
-        {
-        }
-
-        internal VariableDefinitionCollection(int capacity)
-            : base(capacity)
-        {
-        }
-
-        protected override void OnAdd(VariableDefinition item, int index)
-        {
-            item.index = index;
-        }
-
-        protected override void OnInsert(VariableDefinition item, int index)
-        {
-            item.index = index;
-
-            for (int i = index; i < size; i++)
-                items[i].index = i + 1;
-        }
-
-        protected override void OnSet(VariableDefinition item, int index)
-        {
-            item.index = index;
-        }
-
-        protected override void OnRemove(VariableDefinition item, int index)
-        {
-            item.index = -1;
-
-            for (int i = index + 1; i < size; i++)
-                items[i].index = i - 1;
-        }
-    }
-
-    class InstructionCollection : Collection<Instruction>
-    {
-
-        internal InstructionCollection()
-        {
-        }
-
-        internal InstructionCollection(int capacity)
-            : base(capacity)
-        {
-        }
-
-        protected override void OnAdd(Instruction item, int index)
-        {
-            if (index == 0)
-                return;
-
-            var previous = items[index - 1];
-            previous.next = item;
-            item.previous = previous;
-        }
-
-        protected override void OnInsert(Instruction item, int index)
-        {
-            if (size == 0)
-                return;
-
-            var current = items[index];
-            if (current == null)
-            {
-                var last = items[index - 1];
-                last.next = item;
-                item.previous = last;
-                return;
-            }
-
-            var previous = current.previous;
-            if (previous != null)
-            {
-                previous.next = item;
-                item.previous = previous;
-            }
-
-            current.previous = item;
-            item.next = current;
-        }
-
-        protected override void OnSet(Instruction item, int index)
-        {
-            var current = items[index];
-
-            item.previous = current.previous;
-            item.next = current.next;
-
-            current.previous = null;
-            current.next = null;
-        }
-
-        protected override void OnRemove(Instruction item, int index)
-        {
-            var previous = item.previous;
-            if (previous != null)
-                previous.next = item.next;
-
-            var next = item.next;
-            if (next != null)
-                next.previous = item.previous;
-
-            item.previous = null;
-            item.next = null;
-        }
-    }
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/MethodBody.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 2caf9dbb9f3343a4c8f30d79a8a1af48
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 455
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCode.cs

@@ -1,455 +0,0 @@
-//
-// OpCode.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public enum FlowControl {
-		Branch,
-		Break,
-		Call,
-		Cond_Branch,
-		Meta,
-		Next,
-		Phi,
-		Return,
-		Throw,
-	}
-
-	public enum OpCodeType {
-		Annotation,
-		Macro,
-		Nternal,
-		Objmodel,
-		Prefix,
-		Primitive,
-	}
-
-	public enum OperandType {
-		InlineBrTarget,
-		InlineField,
-		InlineI,
-		InlineI8,
-		InlineMethod,
-		InlineNone,
-		InlinePhi,
-		InlineR,
-		InlineSig,
-		InlineString,
-		InlineSwitch,
-		InlineTok,
-		InlineType,
-		InlineVar,
-		InlineArg,
-		ShortInlineBrTarget,
-		ShortInlineI,
-		ShortInlineR,
-		ShortInlineVar,
-		ShortInlineArg,
-	}
-
-	public enum StackBehaviour {
-		Pop0,
-		Pop1,
-		Pop1_pop1,
-		Popi,
-		Popi_pop1,
-		Popi_popi,
-		Popi_popi8,
-		Popi_popi_popi,
-		Popi_popr4,
-		Popi_popr8,
-		Popref,
-		Popref_pop1,
-		Popref_popi,
-		Popref_popi_popi,
-		Popref_popi_popi8,
-		Popref_popi_popr4,
-		Popref_popi_popr8,
-		Popref_popi_popref,
-		PopAll,
-		Push0,
-		Push1,
-		Push1_push1,
-		Pushi,
-		Pushi8,
-		Pushr4,
-		Pushr8,
-		Pushref,
-		Varpop,
-		Varpush,
-	}
-
-	public struct OpCode {
-
-		readonly byte op1;
-		readonly byte op2;
-		readonly byte code;
-		readonly byte flow_control;
-		readonly byte opcode_type;
-		readonly byte operand_type;
-		readonly byte stack_behavior_pop;
-		readonly byte stack_behavior_push;
-
-		public string Name {
-			get { return OpCodeNames.names [(int) Code]; }
-		}
-
-		public int Size {
-			get { return op1 == 0xff ? 1 : 2; }
-		}
-
-		public byte Op1 {
-			get { return op1; }
-		}
-
-		public byte Op2 {
-			get { return op2; }
-		}
-
-		public short Value {
-			get { return op1 == 0xff ? op2 : (short) ((op1 << 8) | op2); }
-		}
-
-		public Code Code {
-			get { return (Code) code; }
-		}
-
-		public FlowControl FlowControl {
-			get { return (FlowControl) flow_control; }
-		}
-
-		public OpCodeType OpCodeType {
-			get { return (OpCodeType) opcode_type; }
-		}
-
-		public OperandType OperandType {
-			get { return (OperandType) operand_type; }
-		}
-
-		public StackBehaviour StackBehaviourPop {
-			get { return (StackBehaviour) stack_behavior_pop; }
-		}
-
-		public StackBehaviour StackBehaviourPush {
-			get { return (StackBehaviour) stack_behavior_push; }
-		}
-
-		internal OpCode (int x, int y)
-		{
-			this.op1 = (byte) ((x >> 0) & 0xff);
-			this.op2 = (byte) ((x >> 8) & 0xff);
-			this.code = (byte) ((x >> 16) & 0xff);
-			this.flow_control = (byte) ((x >> 24) & 0xff);
-
-			this.opcode_type = (byte) ((y >> 0) & 0xff);
-			this.operand_type = (byte) ((y >> 8) & 0xff);
-			this.stack_behavior_pop = (byte) ((y >> 16) & 0xff);
-			this.stack_behavior_push = (byte) ((y >> 24) & 0xff);
-
-			if (op1 == 0xff)
-				OpCodes.OneByteOpCode [op2] = this;
-			else
-				OpCodes.TwoBytesOpCode [op2] = this;
-		}
-
-		public override int GetHashCode ()
-		{
-			return Value;
-		}
-
-		public override bool Equals (object obj)
-		{
-			if (!(obj is OpCode))
-				return false;
-
-			var opcode = (OpCode) obj;
-			return op1 == opcode.op1 && op2 == opcode.op2;
-		}
-
-		public bool Equals (OpCode opcode)
-		{
-			return op1 == opcode.op1 && op2 == opcode.op2;
-		}
-
-		public static bool operator == (OpCode one, OpCode other)
-		{
-			return one.op1 == other.op1 && one.op2 == other.op2;
-		}
-
-		public static bool operator != (OpCode one, OpCode other)
-		{
-			return one.op1 != other.op1 || one.op2 != other.op2;
-		}
-
-		public override string ToString ()
-		{
-			return Name;
-		}
-	}
-
-	static class OpCodeNames {
-
-		internal static readonly string [] names;
-
-		static OpCodeNames ()
-		{
-			var table = new byte [] {
-				3, 110, 111, 112,
-				5, 98, 114, 101, 97, 107,
-				7, 108, 100, 97, 114, 103, 46, 48,
-				7, 108, 100, 97, 114, 103, 46, 49,
-				7, 108, 100, 97, 114, 103, 46, 50,
-				7, 108, 100, 97, 114, 103, 46, 51,
-				7, 108, 100, 108, 111, 99, 46, 48,
-				7, 108, 100, 108, 111, 99, 46, 49,
-				7, 108, 100, 108, 111, 99, 46, 50,
-				7, 108, 100, 108, 111, 99, 46, 51,
-				7, 115, 116, 108, 111, 99, 46, 48,
-				7, 115, 116, 108, 111, 99, 46, 49,
-				7, 115, 116, 108, 111, 99, 46, 50,
-				7, 115, 116, 108, 111, 99, 46, 51,
-				7, 108, 100, 97, 114, 103, 46, 115,
-				8, 108, 100, 97, 114, 103, 97, 46, 115,
-				7, 115, 116, 97, 114, 103, 46, 115,
-				7, 108, 100, 108, 111, 99, 46, 115,
-				8, 108, 100, 108, 111, 99, 97, 46, 115,
-				7, 115, 116, 108, 111, 99, 46, 115,
-				6, 108, 100, 110, 117, 108, 108,
-				9, 108, 100, 99, 46, 105, 52, 46, 109, 49,
-				8, 108, 100, 99, 46, 105, 52, 46, 48,
-				8, 108, 100, 99, 46, 105, 52, 46, 49,
-				8, 108, 100, 99, 46, 105, 52, 46, 50,
-				8, 108, 100, 99, 46, 105, 52, 46, 51,
-				8, 108, 100, 99, 46, 105, 52, 46, 52,
-				8, 108, 100, 99, 46, 105, 52, 46, 53,
-				8, 108, 100, 99, 46, 105, 52, 46, 54,
-				8, 108, 100, 99, 46, 105, 52, 46, 55,
-				8, 108, 100, 99, 46, 105, 52, 46, 56,
-				8, 108, 100, 99, 46, 105, 52, 46, 115,
-				6, 108, 100, 99, 46, 105, 52,
-				6, 108, 100, 99, 46, 105, 56,
-				6, 108, 100, 99, 46, 114, 52,
-				6, 108, 100, 99, 46, 114, 56,
-				3, 100, 117, 112,
-				3, 112, 111, 112,
-				3, 106, 109, 112,
-				4, 99, 97, 108, 108,
-				5, 99, 97, 108, 108, 105,
-				3, 114, 101, 116,
-				4, 98, 114, 46, 115,
-				9, 98, 114, 102, 97, 108, 115, 101, 46, 115,
-				8, 98, 114, 116, 114, 117, 101, 46, 115,
-				5, 98, 101, 113, 46, 115,
-				5, 98, 103, 101, 46, 115,
-				5, 98, 103, 116, 46, 115,
-				5, 98, 108, 101, 46, 115,
-				5, 98, 108, 116, 46, 115,
-				8, 98, 110, 101, 46, 117, 110, 46, 115,
-				8, 98, 103, 101, 46, 117, 110, 46, 115,
-				8, 98, 103, 116, 46, 117, 110, 46, 115,
-				8, 98, 108, 101, 46, 117, 110, 46, 115,
-				8, 98, 108, 116, 46, 117, 110, 46, 115,
-				2, 98, 114,
-				7, 98, 114, 102, 97, 108, 115, 101,
-				6, 98, 114, 116, 114, 117, 101,
-				3, 98, 101, 113,
-				3, 98, 103, 101,
-				3, 98, 103, 116,
-				3, 98, 108, 101,
-				3, 98, 108, 116,
-				6, 98, 110, 101, 46, 117, 110,
-				6, 98, 103, 101, 46, 117, 110,
-				6, 98, 103, 116, 46, 117, 110,
-				6, 98, 108, 101, 46, 117, 110,
-				6, 98, 108, 116, 46, 117, 110,
-				6, 115, 119, 105, 116, 99, 104,
-				8, 108, 100, 105, 110, 100, 46, 105, 49,
-				8, 108, 100, 105, 110, 100, 46, 117, 49,
-				8, 108, 100, 105, 110, 100, 46, 105, 50,
-				8, 108, 100, 105, 110, 100, 46, 117, 50,
-				8, 108, 100, 105, 110, 100, 46, 105, 52,
-				8, 108, 100, 105, 110, 100, 46, 117, 52,
-				8, 108, 100, 105, 110, 100, 46, 105, 56,
-				7, 108, 100, 105, 110, 100, 46, 105,
-				8, 108, 100, 105, 110, 100, 46, 114, 52,
-				8, 108, 100, 105, 110, 100, 46, 114, 56,
-				9, 108, 100, 105, 110, 100, 46, 114, 101, 102,
-				9, 115, 116, 105, 110, 100, 46, 114, 101, 102,
-				8, 115, 116, 105, 110, 100, 46, 105, 49,
-				8, 115, 116, 105, 110, 100, 46, 105, 50,
-				8, 115, 116, 105, 110, 100, 46, 105, 52,
-				8, 115, 116, 105, 110, 100, 46, 105, 56,
-				8, 115, 116, 105, 110, 100, 46, 114, 52,
-				8, 115, 116, 105, 110, 100, 46, 114, 56,
-				3, 97, 100, 100,
-				3, 115, 117, 98,
-				3, 109, 117, 108,
-				3, 100, 105, 118,
-				6, 100, 105, 118, 46, 117, 110,
-				3, 114, 101, 109,
-				6, 114, 101, 109, 46, 117, 110,
-				3, 97, 110, 100,
-				2, 111, 114,
-				3, 120, 111, 114,
-				3, 115, 104, 108,
-				3, 115, 104, 114,
-				6, 115, 104, 114, 46, 117, 110,
-				3, 110, 101, 103,
-				3, 110, 111, 116,
-				7, 99, 111, 110, 118, 46, 105, 49,
-				7, 99, 111, 110, 118, 46, 105, 50,
-				7, 99, 111, 110, 118, 46, 105, 52,
-				7, 99, 111, 110, 118, 46, 105, 56,
-				7, 99, 111, 110, 118, 46, 114, 52,
-				7, 99, 111, 110, 118, 46, 114, 56,
-				7, 99, 111, 110, 118, 46, 117, 52,
-				7, 99, 111, 110, 118, 46, 117, 56,
-				8, 99, 97, 108, 108, 118, 105, 114, 116,
-				5, 99, 112, 111, 98, 106,
-				5, 108, 100, 111, 98, 106,
-				5, 108, 100, 115, 116, 114,
-				6, 110, 101, 119, 111, 98, 106,
-				9, 99, 97, 115, 116, 99, 108, 97, 115, 115,
-				6, 105, 115, 105, 110, 115, 116,
-				9, 99, 111, 110, 118, 46, 114, 46, 117, 110,
-				5, 117, 110, 98, 111, 120,
-				5, 116, 104, 114, 111, 119,
-				5, 108, 100, 102, 108, 100,
-				6, 108, 100, 102, 108, 100, 97,
-				5, 115, 116, 102, 108, 100,
-				6, 108, 100, 115, 102, 108, 100,
-				7, 108, 100, 115, 102, 108, 100, 97,
-				6, 115, 116, 115, 102, 108, 100,
-				5, 115, 116, 111, 98, 106,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 49, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 50, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 52, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 56, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 49, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 50, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 52, 46, 117, 110,
-				14, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 56, 46, 117, 110,
-				13, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 46, 117, 110,
-				13, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 46, 117, 110,
-				3, 98, 111, 120,
-				6, 110, 101, 119, 97, 114, 114,
-				5, 108, 100, 108, 101, 110,
-				7, 108, 100, 101, 108, 101, 109, 97,
-				9, 108, 100, 101, 108, 101, 109, 46, 105, 49,
-				9, 108, 100, 101, 108, 101, 109, 46, 117, 49,
-				9, 108, 100, 101, 108, 101, 109, 46, 105, 50,
-				9, 108, 100, 101, 108, 101, 109, 46, 117, 50,
-				9, 108, 100, 101, 108, 101, 109, 46, 105, 52,
-				9, 108, 100, 101, 108, 101, 109, 46, 117, 52,
-				9, 108, 100, 101, 108, 101, 109, 46, 105, 56,
-				8, 108, 100, 101, 108, 101, 109, 46, 105,
-				9, 108, 100, 101, 108, 101, 109, 46, 114, 52,
-				9, 108, 100, 101, 108, 101, 109, 46, 114, 56,
-				10, 108, 100, 101, 108, 101, 109, 46, 114, 101, 102,
-				8, 115, 116, 101, 108, 101, 109, 46, 105,
-				9, 115, 116, 101, 108, 101, 109, 46, 105, 49,
-				9, 115, 116, 101, 108, 101, 109, 46, 105, 50,
-				9, 115, 116, 101, 108, 101, 109, 46, 105, 52,
-				9, 115, 116, 101, 108, 101, 109, 46, 105, 56,
-				9, 115, 116, 101, 108, 101, 109, 46, 114, 52,
-				9, 115, 116, 101, 108, 101, 109, 46, 114, 56,
-				10, 115, 116, 101, 108, 101, 109, 46, 114, 101, 102,
-				10, 108, 100, 101, 108, 101, 109, 46, 97, 110, 121,
-				10, 115, 116, 101, 108, 101, 109, 46, 97, 110, 121,
-				9, 117, 110, 98, 111, 120, 46, 97, 110, 121,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 49,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 49,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 50,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 50,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 52,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 52,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105, 56,
-				11, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117, 56,
-				9, 114, 101, 102, 97, 110, 121, 118, 97, 108,
-				8, 99, 107, 102, 105, 110, 105, 116, 101,
-				8, 109, 107, 114, 101, 102, 97, 110, 121,
-				7, 108, 100, 116, 111, 107, 101, 110,
-				7, 99, 111, 110, 118, 46, 117, 50,
-				7, 99, 111, 110, 118, 46, 117, 49,
-				6, 99, 111, 110, 118, 46, 105,
-				10, 99, 111, 110, 118, 46, 111, 118, 102, 46, 105,
-				10, 99, 111, 110, 118, 46, 111, 118, 102, 46, 117,
-				7, 97, 100, 100, 46, 111, 118, 102,
-				10, 97, 100, 100, 46, 111, 118, 102, 46, 117, 110,
-				7, 109, 117, 108, 46, 111, 118, 102,
-				10, 109, 117, 108, 46, 111, 118, 102, 46, 117, 110,
-				7, 115, 117, 98, 46, 111, 118, 102,
-				10, 115, 117, 98, 46, 111, 118, 102, 46, 117, 110,
-				10, 101, 110, 100, 102, 105, 110, 97, 108, 108, 121,
-				5, 108, 101, 97, 118, 101,
-				7, 108, 101, 97, 118, 101, 46, 115,
-				7, 115, 116, 105, 110, 100, 46, 105,
-				6, 99, 111, 110, 118, 46, 117,
-				7, 97, 114, 103, 108, 105, 115, 116,
-				3, 99, 101, 113,
-				3, 99, 103, 116,
-				6, 99, 103, 116, 46, 117, 110,
-				3, 99, 108, 116,
-				6, 99, 108, 116, 46, 117, 110,
-				5, 108, 100, 102, 116, 110,
-				9, 108, 100, 118, 105, 114, 116, 102, 116, 110,
-				5, 108, 100, 97, 114, 103,
-				6, 108, 100, 97, 114, 103, 97,
-				5, 115, 116, 97, 114, 103,
-				5, 108, 100, 108, 111, 99,
-				6, 108, 100, 108, 111, 99, 97,
-				5, 115, 116, 108, 111, 99,
-				8, 108, 111, 99, 97, 108, 108, 111, 99,
-				9, 101, 110, 100, 102, 105, 108, 116, 101, 114,
-				10, 117, 110, 97, 108, 105, 103, 110, 101, 100, 46,
-				9, 118, 111, 108, 97, 116, 105, 108, 101, 46,
-				5, 116, 97, 105, 108, 46,
-				7, 105, 110, 105, 116, 111, 98, 106,
-				12, 99, 111, 110, 115, 116, 114, 97, 105, 110, 101, 100, 46,
-				5, 99, 112, 98, 108, 107,
-				7, 105, 110, 105, 116, 98, 108, 107,
-				3, 110, 111, 46,
-				7, 114, 101, 116, 104, 114, 111, 119,
-				6, 115, 105, 122, 101, 111, 102,
-				10, 114, 101, 102, 97, 110, 121, 116, 121, 112, 101,
-				9, 114, 101, 97, 100, 111, 110, 108, 121, 46,
-			};
-
-			names = new string [219];
-
-			for (int i = 0, p = 0; i < names.Length; i++) {
-				var buffer = new char [table [p++]];
-
-				for (int j = 0; j < buffer.Length; j++)
-					buffer [j] = (char) table [p++];
-
-				names [i] = new string (buffer);
-			}
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCode.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 30c908ee1b8b102419225be8a2c7096f
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 912
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCodes.cs

@@ -1,912 +0,0 @@
-//
-// OpCodes.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public static class OpCodes {
-
-		internal static readonly OpCode [] OneByteOpCode = new OpCode [0xe0 + 1];
-		internal static readonly OpCode [] TwoBytesOpCode = new OpCode [0x1e + 1];
-
-		public static readonly OpCode Nop = new OpCode (
-			0xff << 0 | 0x00 << 8 | (byte) Code.Nop << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Break = new OpCode (
-			0xff << 0 | 0x01 << 8 | (byte) Code.Break << 16 | (byte) FlowControl.Break << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldarg_0 = new OpCode (
-			0xff << 0 | 0x02 << 8 | (byte) Code.Ldarg_0 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldarg_1 = new OpCode (
-			0xff << 0 | 0x03 << 8 | (byte) Code.Ldarg_1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldarg_2 = new OpCode (
-			0xff << 0 | 0x04 << 8 | (byte) Code.Ldarg_2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldarg_3 = new OpCode (
-			0xff << 0 | 0x05 << 8 | (byte) Code.Ldarg_3 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloc_0 = new OpCode (
-			0xff << 0 | 0x06 << 8 | (byte) Code.Ldloc_0 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloc_1 = new OpCode (
-			0xff << 0 | 0x07 << 8 | (byte) Code.Ldloc_1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloc_2 = new OpCode (
-			0xff << 0 | 0x08 << 8 | (byte) Code.Ldloc_2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloc_3 = new OpCode (
-			0xff << 0 | 0x09 << 8 | (byte) Code.Ldloc_3 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Stloc_0 = new OpCode (
-			0xff << 0 | 0x0a << 8 | (byte) Code.Stloc_0 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stloc_1 = new OpCode (
-			0xff << 0 | 0x0b << 8 | (byte) Code.Stloc_1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stloc_2 = new OpCode (
-			0xff << 0 | 0x0c << 8 | (byte) Code.Stloc_2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stloc_3 = new OpCode (
-			0xff << 0 | 0x0d << 8 | (byte) Code.Stloc_3 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldarg_S = new OpCode (
-			0xff << 0 | 0x0e << 8 | (byte) Code.Ldarg_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineArg << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldarga_S = new OpCode (
-			0xff << 0 | 0x0f << 8 | (byte) Code.Ldarga_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineArg << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Starg_S = new OpCode (
-			0xff << 0 | 0x10 << 8 | (byte) Code.Starg_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineArg << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldloc_S = new OpCode (
-			0xff << 0 | 0x11 << 8 | (byte) Code.Ldloc_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineVar << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloca_S = new OpCode (
-			0xff << 0 | 0x12 << 8 | (byte) Code.Ldloca_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineVar << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Stloc_S = new OpCode (
-			0xff << 0 | 0x13 << 8 | (byte) Code.Stloc_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineVar << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldnull = new OpCode (
-			0xff << 0 | 0x14 << 8 | (byte) Code.Ldnull << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Ldc_I4_M1 = new OpCode (
-			0xff << 0 | 0x15 << 8 | (byte) Code.Ldc_I4_M1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_0 = new OpCode (
-			0xff << 0 | 0x16 << 8 | (byte) Code.Ldc_I4_0 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_1 = new OpCode (
-			0xff << 0 | 0x17 << 8 | (byte) Code.Ldc_I4_1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_2 = new OpCode (
-			0xff << 0 | 0x18 << 8 | (byte) Code.Ldc_I4_2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_3 = new OpCode (
-			0xff << 0 | 0x19 << 8 | (byte) Code.Ldc_I4_3 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_4 = new OpCode (
-			0xff << 0 | 0x1a << 8 | (byte) Code.Ldc_I4_4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_5 = new OpCode (
-			0xff << 0 | 0x1b << 8 | (byte) Code.Ldc_I4_5 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_6 = new OpCode (
-			0xff << 0 | 0x1c << 8 | (byte) Code.Ldc_I4_6 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_7 = new OpCode (
-			0xff << 0 | 0x1d << 8 | (byte) Code.Ldc_I4_7 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_8 = new OpCode (
-			0xff << 0 | 0x1e << 8 | (byte) Code.Ldc_I4_8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4_S = new OpCode (
-			0xff << 0 | 0x1f << 8 | (byte) Code.Ldc_I4_S << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineI << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I4 = new OpCode (
-			0xff << 0 | 0x20 << 8 | (byte) Code.Ldc_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineI << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldc_I8 = new OpCode (
-			0xff << 0 | 0x21 << 8 | (byte) Code.Ldc_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineI8 << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Ldc_R4 = new OpCode (
-			0xff << 0 | 0x22 << 8 | (byte) Code.Ldc_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.ShortInlineR << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushr4 << 24);
-
-		public static readonly OpCode Ldc_R8 = new OpCode (
-			0xff << 0 | 0x23 << 8 | (byte) Code.Ldc_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineR << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Dup = new OpCode (
-			0xff << 0 | 0x25 << 8 | (byte) Code.Dup << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push1_push1 << 24);
-
-		public static readonly OpCode Pop = new OpCode (
-			0xff << 0 | 0x26 << 8 | (byte) Code.Pop << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Jmp = new OpCode (
-			0xff << 0 | 0x27 << 8 | (byte) Code.Jmp << 16 | (byte) FlowControl.Call << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Call = new OpCode (
-			0xff << 0 | 0x28 << 8 | (byte) Code.Call << 16 | (byte) FlowControl.Call << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Varpop << 16 | (byte) StackBehaviour.Varpush << 24);
-
-		public static readonly OpCode Calli = new OpCode (
-			0xff << 0 | 0x29 << 8 | (byte) Code.Calli << 16 | (byte) FlowControl.Call << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineSig << 8 | (byte) StackBehaviour.Varpop << 16 | (byte) StackBehaviour.Varpush << 24);
-
-		public static readonly OpCode Ret = new OpCode (
-			0xff << 0 | 0x2a << 8 | (byte) Code.Ret << 16 | (byte) FlowControl.Return << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Varpop << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Br_S = new OpCode (
-			0xff << 0 | 0x2b << 8 | (byte) Code.Br_S << 16 | (byte) FlowControl.Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Brfalse_S = new OpCode (
-			0xff << 0 | 0x2c << 8 | (byte) Code.Brfalse_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Brtrue_S = new OpCode (
-			0xff << 0 | 0x2d << 8 | (byte) Code.Brtrue_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Beq_S = new OpCode (
-			0xff << 0 | 0x2e << 8 | (byte) Code.Beq_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bge_S = new OpCode (
-			0xff << 0 | 0x2f << 8 | (byte) Code.Bge_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bgt_S = new OpCode (
-			0xff << 0 | 0x30 << 8 | (byte) Code.Bgt_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ble_S = new OpCode (
-			0xff << 0 | 0x31 << 8 | (byte) Code.Ble_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Blt_S = new OpCode (
-			0xff << 0 | 0x32 << 8 | (byte) Code.Blt_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bne_Un_S = new OpCode (
-			0xff << 0 | 0x33 << 8 | (byte) Code.Bne_Un_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bge_Un_S = new OpCode (
-			0xff << 0 | 0x34 << 8 | (byte) Code.Bge_Un_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bgt_Un_S = new OpCode (
-			0xff << 0 | 0x35 << 8 | (byte) Code.Bgt_Un_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ble_Un_S = new OpCode (
-			0xff << 0 | 0x36 << 8 | (byte) Code.Ble_Un_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Blt_Un_S = new OpCode (
-			0xff << 0 | 0x37 << 8 | (byte) Code.Blt_Un_S << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Br = new OpCode (
-			0xff << 0 | 0x38 << 8 | (byte) Code.Br << 16 | (byte) FlowControl.Branch << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Brfalse = new OpCode (
-			0xff << 0 | 0x39 << 8 | (byte) Code.Brfalse << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Brtrue = new OpCode (
-			0xff << 0 | 0x3a << 8 | (byte) Code.Brtrue << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Beq = new OpCode (
-			0xff << 0 | 0x3b << 8 | (byte) Code.Beq << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bge = new OpCode (
-			0xff << 0 | 0x3c << 8 | (byte) Code.Bge << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bgt = new OpCode (
-			0xff << 0 | 0x3d << 8 | (byte) Code.Bgt << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ble = new OpCode (
-			0xff << 0 | 0x3e << 8 | (byte) Code.Ble << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Blt = new OpCode (
-			0xff << 0 | 0x3f << 8 | (byte) Code.Blt << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bne_Un = new OpCode (
-			0xff << 0 | 0x40 << 8 | (byte) Code.Bne_Un << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bge_Un = new OpCode (
-			0xff << 0 | 0x41 << 8 | (byte) Code.Bge_Un << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Bgt_Un = new OpCode (
-			0xff << 0 | 0x42 << 8 | (byte) Code.Bgt_Un << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ble_Un = new OpCode (
-			0xff << 0 | 0x43 << 8 | (byte) Code.Ble_Un << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Blt_Un = new OpCode (
-			0xff << 0 | 0x44 << 8 | (byte) Code.Blt_Un << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Switch = new OpCode (
-			0xff << 0 | 0x45 << 8 | (byte) Code.Switch << 16 | (byte) FlowControl.Cond_Branch << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineSwitch << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldind_I1 = new OpCode (
-			0xff << 0 | 0x46 << 8 | (byte) Code.Ldind_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_U1 = new OpCode (
-			0xff << 0 | 0x47 << 8 | (byte) Code.Ldind_U1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_I2 = new OpCode (
-			0xff << 0 | 0x48 << 8 | (byte) Code.Ldind_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_U2 = new OpCode (
-			0xff << 0 | 0x49 << 8 | (byte) Code.Ldind_U2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_I4 = new OpCode (
-			0xff << 0 | 0x4a << 8 | (byte) Code.Ldind_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_U4 = new OpCode (
-			0xff << 0 | 0x4b << 8 | (byte) Code.Ldind_U4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_I8 = new OpCode (
-			0xff << 0 | 0x4c << 8 | (byte) Code.Ldind_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Ldind_I = new OpCode (
-			0xff << 0 | 0x4d << 8 | (byte) Code.Ldind_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldind_R4 = new OpCode (
-			0xff << 0 | 0x4e << 8 | (byte) Code.Ldind_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushr4 << 24);
-
-		public static readonly OpCode Ldind_R8 = new OpCode (
-			0xff << 0 | 0x4f << 8 | (byte) Code.Ldind_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Ldind_Ref = new OpCode (
-			0xff << 0 | 0x50 << 8 | (byte) Code.Ldind_Ref << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Stind_Ref = new OpCode (
-			0xff << 0 | 0x51 << 8 | (byte) Code.Stind_Ref << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_I1 = new OpCode (
-			0xff << 0 | 0x52 << 8 | (byte) Code.Stind_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_I2 = new OpCode (
-			0xff << 0 | 0x53 << 8 | (byte) Code.Stind_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_I4 = new OpCode (
-			0xff << 0 | 0x54 << 8 | (byte) Code.Stind_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_I8 = new OpCode (
-			0xff << 0 | 0x55 << 8 | (byte) Code.Stind_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi8 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_R4 = new OpCode (
-			0xff << 0 | 0x56 << 8 | (byte) Code.Stind_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popr4 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_R8 = new OpCode (
-			0xff << 0 | 0x57 << 8 | (byte) Code.Stind_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popr8 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Add = new OpCode (
-			0xff << 0 | 0x58 << 8 | (byte) Code.Add << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Sub = new OpCode (
-			0xff << 0 | 0x59 << 8 | (byte) Code.Sub << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Mul = new OpCode (
-			0xff << 0 | 0x5a << 8 | (byte) Code.Mul << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Div = new OpCode (
-			0xff << 0 | 0x5b << 8 | (byte) Code.Div << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Div_Un = new OpCode (
-			0xff << 0 | 0x5c << 8 | (byte) Code.Div_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Rem = new OpCode (
-			0xff << 0 | 0x5d << 8 | (byte) Code.Rem << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Rem_Un = new OpCode (
-			0xff << 0 | 0x5e << 8 | (byte) Code.Rem_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode And = new OpCode (
-			0xff << 0 | 0x5f << 8 | (byte) Code.And << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Or = new OpCode (
-			0xff << 0 | 0x60 << 8 | (byte) Code.Or << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Xor = new OpCode (
-			0xff << 0 | 0x61 << 8 | (byte) Code.Xor << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Shl = new OpCode (
-			0xff << 0 | 0x62 << 8 | (byte) Code.Shl << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Shr = new OpCode (
-			0xff << 0 | 0x63 << 8 | (byte) Code.Shr << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Shr_Un = new OpCode (
-			0xff << 0 | 0x64 << 8 | (byte) Code.Shr_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Neg = new OpCode (
-			0xff << 0 | 0x65 << 8 | (byte) Code.Neg << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Not = new OpCode (
-			0xff << 0 | 0x66 << 8 | (byte) Code.Not << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Conv_I1 = new OpCode (
-			0xff << 0 | 0x67 << 8 | (byte) Code.Conv_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_I2 = new OpCode (
-			0xff << 0 | 0x68 << 8 | (byte) Code.Conv_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_I4 = new OpCode (
-			0xff << 0 | 0x69 << 8 | (byte) Code.Conv_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_I8 = new OpCode (
-			0xff << 0 | 0x6a << 8 | (byte) Code.Conv_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Conv_R4 = new OpCode (
-			0xff << 0 | 0x6b << 8 | (byte) Code.Conv_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushr4 << 24);
-
-		public static readonly OpCode Conv_R8 = new OpCode (
-			0xff << 0 | 0x6c << 8 | (byte) Code.Conv_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Conv_U4 = new OpCode (
-			0xff << 0 | 0x6d << 8 | (byte) Code.Conv_U4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_U8 = new OpCode (
-			0xff << 0 | 0x6e << 8 | (byte) Code.Conv_U8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Callvirt = new OpCode (
-			0xff << 0 | 0x6f << 8 | (byte) Code.Callvirt << 16 | (byte) FlowControl.Call << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Varpop << 16 | (byte) StackBehaviour.Varpush << 24);
-
-		public static readonly OpCode Cpobj = new OpCode (
-			0xff << 0 | 0x70 << 8 | (byte) Code.Cpobj << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldobj = new OpCode (
-			0xff << 0 | 0x71 << 8 | (byte) Code.Ldobj << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldstr = new OpCode (
-			0xff << 0 | 0x72 << 8 | (byte) Code.Ldstr << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineString << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Newobj = new OpCode (
-			0xff << 0 | 0x73 << 8 | (byte) Code.Newobj << 16 | (byte) FlowControl.Call << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Varpop << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Castclass = new OpCode (
-			0xff << 0 | 0x74 << 8 | (byte) Code.Castclass << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Isinst = new OpCode (
-			0xff << 0 | 0x75 << 8 | (byte) Code.Isinst << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_R_Un = new OpCode (
-			0xff << 0 | 0x76 << 8 | (byte) Code.Conv_R_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Unbox = new OpCode (
-			0xff << 0 | 0x79 << 8 | (byte) Code.Unbox << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Throw = new OpCode (
-			0xff << 0 | 0x7a << 8 | (byte) Code.Throw << 16 | (byte) FlowControl.Throw << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldfld = new OpCode (
-			0xff << 0 | 0x7b << 8 | (byte) Code.Ldfld << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldflda = new OpCode (
-			0xff << 0 | 0x7c << 8 | (byte) Code.Ldflda << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Stfld = new OpCode (
-			0xff << 0 | 0x7d << 8 | (byte) Code.Stfld << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Popref_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldsfld = new OpCode (
-			0xff << 0 | 0x7e << 8 | (byte) Code.Ldsfld << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldsflda = new OpCode (
-			0xff << 0 | 0x7f << 8 | (byte) Code.Ldsflda << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Stsfld = new OpCode (
-			0xff << 0 | 0x80 << 8 | (byte) Code.Stsfld << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineField << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stobj = new OpCode (
-			0xff << 0 | 0x81 << 8 | (byte) Code.Stobj << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi_pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Conv_Ovf_I1_Un = new OpCode (
-			0xff << 0 | 0x82 << 8 | (byte) Code.Conv_Ovf_I1_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I2_Un = new OpCode (
-			0xff << 0 | 0x83 << 8 | (byte) Code.Conv_Ovf_I2_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I4_Un = new OpCode (
-			0xff << 0 | 0x84 << 8 | (byte) Code.Conv_Ovf_I4_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I8_Un = new OpCode (
-			0xff << 0 | 0x85 << 8 | (byte) Code.Conv_Ovf_I8_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Conv_Ovf_U1_Un = new OpCode (
-			0xff << 0 | 0x86 << 8 | (byte) Code.Conv_Ovf_U1_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U2_Un = new OpCode (
-			0xff << 0 | 0x87 << 8 | (byte) Code.Conv_Ovf_U2_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U4_Un = new OpCode (
-			0xff << 0 | 0x88 << 8 | (byte) Code.Conv_Ovf_U4_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U8_Un = new OpCode (
-			0xff << 0 | 0x89 << 8 | (byte) Code.Conv_Ovf_U8_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Conv_Ovf_I_Un = new OpCode (
-			0xff << 0 | 0x8a << 8 | (byte) Code.Conv_Ovf_I_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U_Un = new OpCode (
-			0xff << 0 | 0x8b << 8 | (byte) Code.Conv_Ovf_U_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Box = new OpCode (
-			0xff << 0 | 0x8c << 8 | (byte) Code.Box << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Newarr = new OpCode (
-			0xff << 0 | 0x8d << 8 | (byte) Code.Newarr << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Ldlen = new OpCode (
-			0xff << 0 | 0x8e << 8 | (byte) Code.Ldlen << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelema = new OpCode (
-			0xff << 0 | 0x8f << 8 | (byte) Code.Ldelema << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_I1 = new OpCode (
-			0xff << 0 | 0x90 << 8 | (byte) Code.Ldelem_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_U1 = new OpCode (
-			0xff << 0 | 0x91 << 8 | (byte) Code.Ldelem_U1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_I2 = new OpCode (
-			0xff << 0 | 0x92 << 8 | (byte) Code.Ldelem_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_U2 = new OpCode (
-			0xff << 0 | 0x93 << 8 | (byte) Code.Ldelem_U2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_I4 = new OpCode (
-			0xff << 0 | 0x94 << 8 | (byte) Code.Ldelem_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_U4 = new OpCode (
-			0xff << 0 | 0x95 << 8 | (byte) Code.Ldelem_U4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_I8 = new OpCode (
-			0xff << 0 | 0x96 << 8 | (byte) Code.Ldelem_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Ldelem_I = new OpCode (
-			0xff << 0 | 0x97 << 8 | (byte) Code.Ldelem_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldelem_R4 = new OpCode (
-			0xff << 0 | 0x98 << 8 | (byte) Code.Ldelem_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushr4 << 24);
-
-		public static readonly OpCode Ldelem_R8 = new OpCode (
-			0xff << 0 | 0x99 << 8 | (byte) Code.Ldelem_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Ldelem_Ref = new OpCode (
-			0xff << 0 | 0x9a << 8 | (byte) Code.Ldelem_Ref << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Pushref << 24);
-
-		public static readonly OpCode Stelem_I = new OpCode (
-			0xff << 0 | 0x9b << 8 | (byte) Code.Stelem_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_I1 = new OpCode (
-			0xff << 0 | 0x9c << 8 | (byte) Code.Stelem_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_I2 = new OpCode (
-			0xff << 0 | 0x9d << 8 | (byte) Code.Stelem_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_I4 = new OpCode (
-			0xff << 0 | 0x9e << 8 | (byte) Code.Stelem_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_I8 = new OpCode (
-			0xff << 0 | 0x9f << 8 | (byte) Code.Stelem_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popi8 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_R4 = new OpCode (
-			0xff << 0 | 0xa0 << 8 | (byte) Code.Stelem_R4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popr4 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_R8 = new OpCode (
-			0xff << 0 | 0xa1 << 8 | (byte) Code.Stelem_R8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popr8 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stelem_Ref = new OpCode (
-			0xff << 0 | 0xa2 << 8 | (byte) Code.Stelem_Ref << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popref_popi_popref << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldelem_Any = new OpCode (
-			0xff << 0 | 0xa3 << 8 | (byte) Code.Ldelem_Any << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref_popi << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Stelem_Any = new OpCode (
-			0xff << 0 | 0xa4 << 8 | (byte) Code.Stelem_Any << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref_popi_popref << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Unbox_Any = new OpCode (
-			0xff << 0 | 0xa5 << 8 | (byte) Code.Unbox_Any << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Conv_Ovf_I1 = new OpCode (
-			0xff << 0 | 0xb3 << 8 | (byte) Code.Conv_Ovf_I1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U1 = new OpCode (
-			0xff << 0 | 0xb4 << 8 | (byte) Code.Conv_Ovf_U1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I2 = new OpCode (
-			0xff << 0 | 0xb5 << 8 | (byte) Code.Conv_Ovf_I2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U2 = new OpCode (
-			0xff << 0 | 0xb6 << 8 | (byte) Code.Conv_Ovf_U2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I4 = new OpCode (
-			0xff << 0 | 0xb7 << 8 | (byte) Code.Conv_Ovf_I4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U4 = new OpCode (
-			0xff << 0 | 0xb8 << 8 | (byte) Code.Conv_Ovf_U4 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I8 = new OpCode (
-			0xff << 0 | 0xb9 << 8 | (byte) Code.Conv_Ovf_I8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Conv_Ovf_U8 = new OpCode (
-			0xff << 0 | 0xba << 8 | (byte) Code.Conv_Ovf_U8 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi8 << 24);
-
-		public static readonly OpCode Refanyval = new OpCode (
-			0xff << 0 | 0xc2 << 8 | (byte) Code.Refanyval << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ckfinite = new OpCode (
-			0xff << 0 | 0xc3 << 8 | (byte) Code.Ckfinite << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushr8 << 24);
-
-		public static readonly OpCode Mkrefany = new OpCode (
-			0xff << 0 | 0xc6 << 8 | (byte) Code.Mkrefany << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldtoken = new OpCode (
-			0xff << 0 | 0xd0 << 8 | (byte) Code.Ldtoken << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineTok << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_U2 = new OpCode (
-			0xff << 0 | 0xd1 << 8 | (byte) Code.Conv_U2 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_U1 = new OpCode (
-			0xff << 0 | 0xd2 << 8 | (byte) Code.Conv_U1 << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_I = new OpCode (
-			0xff << 0 | 0xd3 << 8 | (byte) Code.Conv_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_I = new OpCode (
-			0xff << 0 | 0xd4 << 8 | (byte) Code.Conv_Ovf_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Conv_Ovf_U = new OpCode (
-			0xff << 0 | 0xd5 << 8 | (byte) Code.Conv_Ovf_U << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Add_Ovf = new OpCode (
-			0xff << 0 | 0xd6 << 8 | (byte) Code.Add_Ovf << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Add_Ovf_Un = new OpCode (
-			0xff << 0 | 0xd7 << 8 | (byte) Code.Add_Ovf_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Mul_Ovf = new OpCode (
-			0xff << 0 | 0xd8 << 8 | (byte) Code.Mul_Ovf << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Mul_Ovf_Un = new OpCode (
-			0xff << 0 | 0xd9 << 8 | (byte) Code.Mul_Ovf_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Sub_Ovf = new OpCode (
-			0xff << 0 | 0xda << 8 | (byte) Code.Sub_Ovf << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Sub_Ovf_Un = new OpCode (
-			0xff << 0 | 0xdb << 8 | (byte) Code.Sub_Ovf_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Endfinally = new OpCode (
-			0xff << 0 | 0xdc << 8 | (byte) Code.Endfinally << 16 | (byte) FlowControl.Return << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Leave = new OpCode (
-			0xff << 0 | 0xdd << 8 | (byte) Code.Leave << 16 | (byte) FlowControl.Branch << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineBrTarget << 8 | (byte) StackBehaviour.PopAll << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Leave_S = new OpCode (
-			0xff << 0 | 0xde << 8 | (byte) Code.Leave_S << 16 | (byte) FlowControl.Branch << 24,
-			(byte) OpCodeType.Macro << 0 | (byte) OperandType.ShortInlineBrTarget << 8 | (byte) StackBehaviour.PopAll << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Stind_I = new OpCode (
-			0xff << 0 | 0xdf << 8 | (byte) Code.Stind_I << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Conv_U = new OpCode (
-			0xff << 0 | 0xe0 << 8 | (byte) Code.Conv_U << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Arglist = new OpCode (
-			0xfe << 0 | 0x00 << 8 | (byte) Code.Arglist << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ceq = new OpCode (
-			0xfe << 0 | 0x01 << 8 | (byte) Code.Ceq << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Cgt = new OpCode (
-			0xfe << 0 | 0x02 << 8 | (byte) Code.Cgt << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Cgt_Un = new OpCode (
-			0xfe << 0 | 0x03 << 8 | (byte) Code.Cgt_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Clt = new OpCode (
-			0xfe << 0 | 0x04 << 8 | (byte) Code.Clt << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Clt_Un = new OpCode (
-			0xfe << 0 | 0x05 << 8 | (byte) Code.Clt_Un << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1_pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldftn = new OpCode (
-			0xfe << 0 | 0x06 << 8 | (byte) Code.Ldftn << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldvirtftn = new OpCode (
-			0xfe << 0 | 0x07 << 8 | (byte) Code.Ldvirtftn << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineMethod << 8 | (byte) StackBehaviour.Popref << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Ldarg = new OpCode (
-			0xfe << 0 | 0x09 << 8 | (byte) Code.Ldarg << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineArg << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldarga = new OpCode (
-			0xfe << 0 | 0x0a << 8 | (byte) Code.Ldarga << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineArg << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Starg = new OpCode (
-			0xfe << 0 | 0x0b << 8 | (byte) Code.Starg << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineArg << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Ldloc = new OpCode (
-			0xfe << 0 | 0x0c << 8 | (byte) Code.Ldloc << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineVar << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push1 << 24);
-
-		public static readonly OpCode Ldloca = new OpCode (
-			0xfe << 0 | 0x0d << 8 | (byte) Code.Ldloca << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineVar << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Stloc = new OpCode (
-			0xfe << 0 | 0x0e << 8 | (byte) Code.Stloc << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineVar << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Localloc = new OpCode (
-			0xfe << 0 | 0x0f << 8 | (byte) Code.Localloc << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Endfilter = new OpCode (
-			0xfe << 0 | 0x11 << 8 | (byte) Code.Endfilter << 16 | (byte) FlowControl.Return << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Unaligned = new OpCode (
-			0xfe << 0 | 0x12 << 8 | (byte) Code.Unaligned << 16 | (byte) FlowControl.Meta << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.ShortInlineI << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Volatile = new OpCode (
-			0xfe << 0 | 0x13 << 8 | (byte) Code.Volatile << 16 | (byte) FlowControl.Meta << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Tail = new OpCode (
-			0xfe << 0 | 0x14 << 8 | (byte) Code.Tail << 16 | (byte) FlowControl.Meta << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Initobj = new OpCode (
-			0xfe << 0 | 0x15 << 8 | (byte) Code.Initobj << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Constrained = new OpCode (
-			0xfe << 0 | 0x16 << 8 | (byte) Code.Constrained << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Cpblk = new OpCode (
-			0xfe << 0 | 0x17 << 8 | (byte) Code.Cpblk << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Initblk = new OpCode (
-			0xfe << 0 | 0x18 << 8 | (byte) Code.Initblk << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Popi_popi_popi << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode No = new OpCode (
-			0xfe << 0 | 0x19 << 8 | (byte) Code.No << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.ShortInlineI << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Rethrow = new OpCode (
-			0xfe << 0 | 0x1a << 8 | (byte) Code.Rethrow << 16 | (byte) FlowControl.Throw << 24,
-			(byte) OpCodeType.Objmodel << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-
-		public static readonly OpCode Sizeof = new OpCode (
-			0xfe << 0 | 0x1c << 8 | (byte) Code.Sizeof << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineType << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Refanytype = new OpCode (
-			0xfe << 0 | 0x1d << 8 | (byte) Code.Refanytype << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Primitive << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop1 << 16 | (byte) StackBehaviour.Pushi << 24);
-
-		public static readonly OpCode Readonly = new OpCode (
-			0xfe << 0 | 0x1e << 8 | (byte) Code.Readonly << 16 | (byte) FlowControl.Next << 24,
-			(byte) OpCodeType.Prefix << 0 | (byte) OperandType.InlineNone << 8 | (byte) StackBehaviour.Pop0 << 16 | (byte) StackBehaviour.Push0 << 24);
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/OpCodes.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 746d49a0f84b9cf4091c8766943f5b0f
-timeCreated: 1463825962
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 70
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/SequencePoint.cs

@@ -1,70 +0,0 @@
-//
-// SequencePoint.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public sealed class SequencePoint {
-
-		Document document;
-
-		int start_line;
-		int start_column;
-		int end_line;
-		int end_column;
-
-		public int StartLine {
-			get { return start_line; }
-			set { start_line = value; }
-		}
-
-		public int StartColumn {
-			get { return start_column; }
-			set { start_column = value; }
-		}
-
-		public int EndLine {
-			get { return end_line; }
-			set { end_line = value; }
-		}
-
-		public int EndColumn {
-			get { return end_column; }
-			set { end_column = value; }
-		}
-
-		public Document Document {
-			get { return document; }
-			set { document = value; }
-		}
-
-		public SequencePoint (Document document)
-		{
-			this.document = document;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/SequencePoint.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 6f82c88233469d340820debfa8db887b
-timeCreated: 1463825962
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 243
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Symbols.cs

@@ -1,243 +0,0 @@
-//
-// Symbols.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.IO;
-using System.Runtime.InteropServices;
-using SR = System.Reflection;
-
-using Mono.Collections.Generic;
-
-namespace Mono.Cecil.Cil {
-
-	[StructLayout (LayoutKind.Sequential)]
-	public struct ImageDebugDirectory {
-		public int Characteristics;
-		public int TimeDateStamp;
-		public short MajorVersion;
-		public short MinorVersion;
-		public int Type;
-		public int SizeOfData;
-		public int AddressOfRawData;
-		public int PointerToRawData;
-	}
-
-	public sealed class Scope : IVariableDefinitionProvider {
-
-		Instruction start;
-		Instruction end;
-
-		Collection<Scope> scopes;
-		Collection<VariableDefinition> variables;
-
-		public Instruction Start {
-			get { return start; }
-			set { start = value; }
-		}
-
-		public Instruction End {
-			get { return end; }
-			set { end = value; }
-		}
-
-		public bool HasScopes {
-			get { return !Mixin.IsNullOrEmpty (scopes); }
-		}
-
-		public Collection<Scope> Scopes {
-			get {
-				if (scopes == null)
-					scopes = new Collection<Scope> ();
-
-				return scopes;
-			}
-		}
-
-		public bool HasVariables {
-			get { return !Mixin.IsNullOrEmpty (variables); }
-		}
-
-		public Collection<VariableDefinition> Variables {
-			get {
-				if (variables == null)
-					variables = new Collection<VariableDefinition> ();
-
-				return variables;
-			}
-		}
-	}
-
-	public struct InstructionSymbol {
-
-		public readonly int Offset;
-		public readonly SequencePoint SequencePoint;
-
-		public InstructionSymbol (int offset, SequencePoint sequencePoint)
-		{
-			this.Offset = offset;
-			this.SequencePoint = sequencePoint;
-		}
-	}
-
-	public sealed class MethodSymbols {
-
-		internal int code_size;
-		internal string method_name;
-		internal MetadataToken method_token;
-		internal MetadataToken local_var_token;
-		internal Collection<VariableDefinition> variables;
-		public Collection<InstructionSymbol> instructions;
-
-		public bool HasVariables {
-			get { return !Mixin.IsNullOrEmpty (variables); }
-		}
-
-		public Collection<VariableDefinition> Variables {
-			get {
-				if (variables == null)
-					variables = new Collection<VariableDefinition> ();
-
-				return variables;
-			}
-		}
-
-		public Collection<InstructionSymbol> Instructions {
-			get {
-				if (instructions == null)
-					instructions = new Collection<InstructionSymbol> ();
-
-				return instructions;
-			}
-		}
-
-		public int CodeSize {
-			get { return code_size; }
-		}
-
-		public string MethodName {
-			get { return method_name; }
-		}
-
-		public MetadataToken MethodToken {
-			get { return method_token; }
-		}
-
-		public MetadataToken LocalVarToken {
-			get { return local_var_token; }
-		}
-
-		internal MethodSymbols (string methodName)
-		{
-			this.method_name = methodName;
-		}
-
-		public MethodSymbols (MetadataToken methodToken)
-		{
-			this.method_token = methodToken;
-		}
-	}
-
-	public delegate Instruction InstructionMapper (int offset);
-
-	public interface ISymbolReader : IDisposable {
-
-		bool ProcessDebugHeader (ImageDebugDirectory directory, byte [] header);
-		void Read (MethodBody body, InstructionMapper mapper);
-		void Read (MethodSymbols symbols);
-	}
-
-	public interface ISymbolReaderProvider {
-
-		ISymbolReader GetSymbolReader (ModuleDefinition module, string fileName);
-		ISymbolReader GetSymbolReader (ModuleDefinition module, Stream symbolStream);
-	}
-
-	static class SymbolProvider {
-
-		static readonly string symbol_kind = Type.GetType ("Mono.Runtime") != null ? "Mdb" : "Pdb";
-
-		static SR.AssemblyName GetPlatformSymbolAssemblyName ()
-		{
-			var cecil_name = typeof (SymbolProvider).Assembly.GetName ();
-
-			var name = new SR.AssemblyName {
-				Name = "Mono.Cecil." + symbol_kind,
-				Version = cecil_name.Version,
-			};
-
-			name.SetPublicKeyToken (cecil_name.GetPublicKeyToken ());
-
-			return name;
-		}
-
-		static Type GetPlatformType (string fullname)
-		{
-			var type = Type.GetType (fullname);
-			if (type != null)
-				return type;
-
-			var assembly_name = GetPlatformSymbolAssemblyName ();
-
-			type = Type.GetType (fullname + ", " + assembly_name.FullName);
-			if (type != null)
-				return type;
-
-			try {
-				var assembly = SR.Assembly.Load (assembly_name);
-				if (assembly != null)
-					return assembly.GetType (fullname);
-			} catch (FileNotFoundException) {
-
-			}
-
-			return null;
-		}
-
-		static ISymbolReaderProvider reader_provider;
-
-		public static ISymbolReaderProvider GetPlatformReaderProvider ()
-		{
-			if (reader_provider != null)
-				return reader_provider;
-
-			var type = GetPlatformType (GetProviderTypeName ("ReaderProvider"));
-			if (type == null)
-				return null;
-
-			return reader_provider = (ISymbolReaderProvider) Activator.CreateInstance (type);
-		}
-
-		static string GetProviderTypeName (string name)
-		{
-			return "Mono.Cecil." + symbol_kind + "." + symbol_kind + name;
-		}
-
-
-	}
-
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/Symbols.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: be715cd6bfdcc6545ad4b0a1b44fce78
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 52
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableDefinition.cs

@@ -1,52 +0,0 @@
-//
-// VariableDefinition.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public sealed class VariableDefinition : VariableReference {
-
-		public bool IsPinned {
-			get { return variable_type.IsPinned; }
-		}
-
-		public VariableDefinition (TypeReference variableType)
-			: base (variableType)
-		{
-		}
-
-		public VariableDefinition (string name, TypeReference variableType)
-			: base (name, variableType)
-		{
-		}
-
-		public override VariableDefinition Resolve ()
-		{
-			return this;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableDefinition.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 8e8da0f88d639b047a3883553ccf203d
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 75
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableReference.cs

@@ -1,75 +0,0 @@
-//
-// VariableReference.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Cil {
-
-	public abstract class VariableReference {
-
-		string name;
-		internal int index = -1;
-		protected TypeReference variable_type;
-
-		public string Name {
-			get { return name; }
-			set { name = value; }
-		}
-
-		public TypeReference VariableType {
-			get { return variable_type; }
-			set { variable_type = value; }
-		}
-
-		public int Index {
-			get { return index; }
-		}
-
-		internal VariableReference (TypeReference variable_type)
-			: this (string.Empty, variable_type)
-		{
-		}
-
-		internal VariableReference (string name, TypeReference variable_type)
-		{
-			this.name = name;
-			this.variable_type = variable_type;
-		}
-
-		public abstract VariableDefinition Resolve ();
-
-		public override string ToString ()
-		{
-			if (!string.IsNullOrEmpty (name))
-				return name;
-
-			if (index >= 0)
-				return "V_" + index;
-
-			return string.Empty;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Cil/VariableReference.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: b7b6b87cb2fe9e04a8e80463125c832d
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: a45c83871a817e24580d627b700d4b36
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 61
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/BlobHeap.cs

@@ -1,61 +0,0 @@
-//
-// BlobHeap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata
-{
-
-    sealed class BlobHeap : Heap
-    {
-
-        public BlobHeap(Section section, uint start, uint size)
-            : base(section, start, size)
-        {
-        }
-
-        public byte[] Read(uint index)
-        {
-            if (index == 0 || index > Size - 1)
-                return Empty<byte>.Array;
-
-            var data = Section.Data;
-
-            int position = (int)(index + Offset);
-            int length = (int)Mixin.ReadCompressedUInt32(data, ref position);
-
-            var buffer = new byte[length];
-
-            Buffer.BlockCopy(data, position, buffer, 0, length);
-
-            return buffer;
-        }
-    }
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/BlobHeap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 3c71ed264c033fd43baea106e341002b
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 36
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Buffers.cs

@@ -1,36 +0,0 @@
-//
-// TableHeapBuffer.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using Mono.Cecil.PE;
-
-using RVA = System.UInt32;
-

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Buffers.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 9fca80b9b94068a4ea7f6d4a1b52820e
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 46
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/CodedIndex.cs

@@ -1,46 +0,0 @@
-//
-// CodedIndex.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Metadata {
-
-	enum CodedIndex {
-		TypeDefOrRef,
-		HasConstant,
-		HasCustomAttribute,
-		HasFieldMarshal,
-		HasDeclSecurity,
-		MemberRefParent,
-		HasSemantics,
-		MethodDefOrRef,
-		MemberForwarded,
-		Implementation,
-		CustomAttributeType,
-		ResolutionScope,
-		TypeOrMethodDef
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/CodedIndex.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 928d7c618fc7b694287b38241b9378f5
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 73
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/ElementType.cs

@@ -1,73 +0,0 @@
-//
-// ElementType.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil.Metadata {
-
-	enum ElementType : byte {
-		None = 0x00,
-		Void = 0x01,
-		Boolean = 0x02,
-		Char = 0x03,
-		I1 = 0x04,
-		U1 = 0x05,
-		I2 = 0x06,
-		U2 = 0x07,
-		I4 = 0x08,
-		U4 = 0x09,
-		I8 = 0x0a,
-		U8 = 0x0b,
-		R4 = 0x0c,
-		R8 = 0x0d,
-		String = 0x0e,
-		Ptr = 0x0f,   // Followed by <type> token
-		ByRef = 0x10,   // Followed by <type> token
-		ValueType = 0x11,   // Followed by <type> token
-		Class = 0x12,   // Followed by <type> token
-		Var = 0x13,   // Followed by generic parameter number
-		Array = 0x14,   // <type> <rank> <boundsCount> <bound1>  <loCount> <lo1>
-		GenericInst = 0x15,   // <type> <type-arg-count> <type-1> ... <type-n> */
-		TypedByRef = 0x16,
-		I = 0x18,   // System.IntPtr
-		U = 0x19,   // System.UIntPtr
-		FnPtr = 0x1b,   // Followed by full method signature
-		Object = 0x1c,   // System.Object
-		SzArray = 0x1d,   // Single-dim array with 0 lower bound
-		MVar = 0x1e,   // Followed by generic parameter number
-		CModReqD = 0x1f,   // Required modifier : followed by a TypeDef or TypeRef token
-		CModOpt = 0x20,   // Optional modifier : followed by a TypeDef or TypeRef token
-		Internal = 0x21,   // Implemented within the CLI
-		Modifier = 0x40,   // Or'd with following element types
-		Sentinel = 0x41,   // Sentinel for varargs method signature
-		Pinned = 0x45,   // Denotes a local variable that points at a pinned object
-
-		// special undocumented constants
-		Type = 0x50,
-		Boxed = 0x51,
-		Enum = 0x55
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/ElementType.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 55018390f2dc3994fa4eac22287c1043
-timeCreated: 1463825962
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 59
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/GuidHeap.cs

@@ -1,59 +0,0 @@
-//
-// GuidHeap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata {
-
-	sealed class GuidHeap : Heap {
-
-		public GuidHeap (Section section, uint start, uint size)
-			: base (section, start, size)
-		{
-		}
-
-		public Guid Read (uint index)
-		{
-			if (index == 0)
-				return new Guid ();
-
-			const int guid_size = 16;
-
-			var buffer = new byte [guid_size];
-
-			index--;
-
-			Buffer.BlockCopy (Section.Data, (int) (Offset + index), buffer, 0, guid_size);
-
-			return new Guid (buffer);
-
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/GuidHeap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: b68e3584ebe59284284366e04f4e1c2f
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 48
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Heap.cs

@@ -1,48 +0,0 @@
-//
-// Heap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata {
-
-	abstract class Heap {
-
-		public int IndexSize;
-
-		public readonly Section Section;
-		public readonly uint Offset;
-		public readonly uint Size;
-
-		protected Heap (Section section, uint offset, uint size)
-		{
-			this.Section = section;
-			this.Offset = offset;
-			this.Size = size;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Heap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: e4743b5bcc42b674fb13f2ea8dbbc7bc
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 105
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/MetadataToken.cs

@@ -1,105 +0,0 @@
-//
-// MetadataToken.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil {
-
-	public struct MetadataToken {
-
-		readonly uint token;
-
-		public uint RID	{
-			get { return token & 0x00ffffff; }
-		}
-
-		public TokenType TokenType {
-			get { return (TokenType) (token & 0xff000000); }
-		}
-
-		public static readonly MetadataToken Zero = new MetadataToken ((uint) 0);
-
-		public MetadataToken (uint token)
-		{
-			this.token = token;
-		}
-
-		public MetadataToken (TokenType type)
-			: this (type, 0)
-		{
-		}
-
-		public MetadataToken (TokenType type, uint rid)
-		{
-			token = (uint) type | rid;
-		}
-
-		public MetadataToken (TokenType type, int rid)
-		{
-			token = (uint) type | (uint) rid;
-		}
-
-		public int ToInt32 ()
-		{
-			return (int) token;
-		}
-
-		public uint ToUInt32 ()
-		{
-			return token;
-		}
-
-		public override int GetHashCode ()
-		{
-			return (int) token;
-		}
-
-		public override bool Equals (object obj)
-		{
-			if (obj is MetadataToken) {
-				var other = (MetadataToken) obj;
-				return other.token == token;
-			}
-
-			return false;
-		}
-
-		public static bool operator == (MetadataToken one, MetadataToken other)
-		{
-			return one.token == other.token;
-		}
-
-		public static bool operator != (MetadataToken one, MetadataToken other)
-		{
-			return one.token != other.token;
-		}
-
-		public override string ToString ()
-		{
-			return string.Format ("[{0}:0x{1}]", TokenType, RID.ToString ("x4"));
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/MetadataToken.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a475bff3eca5ced4ba4e8d1bec3ec945
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 175
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Row.cs

@@ -1,175 +0,0 @@
-//
-// Row.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections.Generic;
-
-namespace Mono.Cecil.Metadata {
-
-	class Row<T1, T2> {
-		internal T1 Col1;
-		internal T2 Col2;
-
-		public Row (T1 col1, T2 col2)
-		{
-			Col1 = col1;
-			Col2 = col2;
-		}
-	}
-
-    class Row<T1, T2, T3>
-    {
-		internal T1 Col1;
-		internal T2 Col2;
-		internal T3 Col3;
-
-		public Row (T1 col1, T2 col2, T3 col3)
-		{
-			Col1 = col1;
-			Col2 = col2;
-			Col3 = col3;
-		}
-	}
-
-    class Row<T1, T2, T3, T4>
-    {
-		internal T1 Col1;
-		internal T2 Col2;
-		internal T3 Col3;
-		internal T4 Col4;
-
-		public Row (T1 col1, T2 col2, T3 col3, T4 col4)
-		{
-			Col1 = col1;
-			Col2 = col2;
-			Col3 = col3;
-			Col4 = col4;
-		}
-	}
-
-    class Row<T1, T2, T3, T4, T5>
-    {
-		internal T1 Col1;
-		internal T2 Col2;
-		internal T3 Col3;
-		internal T4 Col4;
-		internal T5 Col5;
-
-		public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5)
-		{
-			Col1 = col1;
-			Col2 = col2;
-			Col3 = col3;
-			Col4 = col4;
-			Col5 = col5;
-		}
-	}
-
-    class Row<T1, T2, T3, T4, T5, T6>
-    {
-		internal T1 Col1;
-		internal T2 Col2;
-		internal T3 Col3;
-		internal T4 Col4;
-		internal T5 Col5;
-		internal T6 Col6;
-
-		public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6)
-		{
-			Col1 = col1;
-			Col2 = col2;
-			Col3 = col3;
-			Col4 = col4;
-			Col5 = col5;
-			Col6 = col6;
-		}
-	}
-
-    class Row<T1, T2, T3, T4, T5, T6, T7, T8, T9>
-    {
-		internal T1 Col1;
-		internal T2 Col2;
-		internal T3 Col3;
-		internal T4 Col4;
-		internal T5 Col5;
-		internal T6 Col6;
-		internal T7 Col7;
-		internal T8 Col8;
-		internal T9 Col9;
-
-		public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6, T7 col7, T8 col8, T9 col9)
-		{
-			Col1 = col1;
-			Col2 = col2;
-			Col3 = col3;
-			Col4 = col4;
-			Col5 = col5;
-			Col6 = col6;
-			Col7 = col7;
-			Col8 = col8;
-			Col9 = col9;
-		}
-	}
-
-	sealed class RowEqualityComparer : IEqualityComparer<Row<string, string>>, IEqualityComparer<Row<uint, uint>>, IEqualityComparer<Row<uint, uint, uint>> {
-
-		public bool Equals (Row<string, string> x, Row<string, string> y)
-		{
-			return x.Col1 == y.Col1
-				&& x.Col2 == y.Col2;
-		}
-
-		public int GetHashCode (Row<string, string> obj)
-		{
-			string x = obj.Col1, y = obj.Col2;
-			return (x != null ? x.GetHashCode () : 0) ^ (y != null ? y.GetHashCode () : 0);
-		}
-
-		public bool Equals (Row<uint, uint> x, Row<uint, uint> y)
-		{
-			return x.Col1 == y.Col1
-				&& x.Col2 == y.Col2;
-		}
-
-		public int GetHashCode (Row<uint, uint> obj)
-		{
-			return (int) (obj.Col1 ^ obj.Col2);
-		}
-
-		public bool Equals (Row<uint, uint, uint> x, Row<uint, uint, uint> y)
-		{
-			return x.Col1 == y.Col1
-				&& x.Col2 == y.Col2
-				&& x.Col3 == y.Col3;
-		}
-
-		public int GetHashCode (Row<uint, uint, uint> obj)
-		{
-			return (int) (obj.Col1 ^ obj.Col2 ^ obj.Col3);
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Row.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: cf15521ccd7b59548b7de685df9faaf1
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 81
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/StringHeap.cs

@@ -1,81 +0,0 @@
-//
-// StringHeap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata {
-
-	class StringHeap : Heap {
-
-		readonly Dictionary<uint, string> strings = new Dictionary<uint, string> ();
-
-		public StringHeap (Section section, uint start, uint size)
-			: base (section, start, size)
-		{
-		}
-
-		public string Read (uint index)
-		{
-			if (index == 0)
-				return string.Empty;
-
-			string @string;
-			if (strings.TryGetValue (index, out @string))
-				return @string;
-
-			if (index > Size - 1)
-				return string.Empty;
-
-			@string = ReadStringAt (index);
-			if (@string.Length != 0)
-				strings.Add (index, @string);
-
-			return @string;
-		}
-
-		protected virtual string ReadStringAt (uint index)
-		{
-			int length = 0;
-			byte [] data = Section.Data;
-			int start = (int) (index + Offset);
-
-			for (int i = start; ; i++) {
-				if (data [i] == 0)
-					break;
-
-				length++;
-			}
-
-			return Encoding.UTF8.GetString (data, start, length);
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/StringHeap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 511e5c8b87bb0584faca9cad12e57287
-timeCreated: 1463825962
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 111
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TableHeap.cs

@@ -1,111 +0,0 @@
-//
-// TableHeap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata {
-
-	enum Table : byte {
-		Module = 0x00,
-		TypeRef = 0x01,
-		TypeDef = 0x02,
-		FieldPtr = 0x03,
-		Field = 0x04,
-		MethodPtr = 0x05,
-		Method = 0x06,
-		ParamPtr = 0x07,
-		Param = 0x08,
-		InterfaceImpl = 0x09,
-		MemberRef = 0x0a,
-		Constant = 0x0b,
-		CustomAttribute = 0x0c,
-		FieldMarshal = 0x0d,
-		DeclSecurity = 0x0e,
-		ClassLayout = 0x0f,
-		FieldLayout = 0x10,
-		StandAloneSig = 0x11,
-		EventMap = 0x12,
-		EventPtr = 0x13,
-		Event = 0x14,
-		PropertyMap = 0x15,
-		PropertyPtr = 0x16,
-		Property = 0x17,
-		MethodSemantics = 0x18,
-		MethodImpl = 0x19,
-		ModuleRef = 0x1a,
-		TypeSpec = 0x1b,
-		ImplMap = 0x1c,
-		FieldRVA = 0x1d,
-		EncLog = 0x1e,
-		EncMap = 0x1f,
-		Assembly = 0x20,
-		AssemblyProcessor = 0x21,
-		AssemblyOS = 0x22,
-		AssemblyRef = 0x23,
-		AssemblyRefProcessor = 0x24,
-		AssemblyRefOS = 0x25,
-		File = 0x26,
-		ExportedType = 0x27,
-		ManifestResource = 0x28,
-		NestedClass = 0x29,
-		GenericParam = 0x2a,
-		MethodSpec = 0x2b,
-		GenericParamConstraint = 0x2c,
-	}
-
-	struct TableInformation {
-		public uint Offset;
-		public uint Length;
-		public uint RowSize;
-	}
-
-	sealed class TableHeap : Heap {
-
-		public long Valid;
-		public long Sorted;
-
-		public const int TableCount = 45;
-
-		public readonly TableInformation [] Tables = new TableInformation [TableCount];
-
-		public TableInformation this [Table table] {
-			get { return Tables [(int) table]; }
-		}
-
-		public TableHeap (Section section, uint start, uint size)
-			: base (section, start, size)
-		{
-		}
-
-		public bool HasTable (Table table)
-		{
-			return (Valid & (1L << (int) table)) != 0;
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TableHeap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 3962349e5b42aa84c999886bd0c72c63
-timeCreated: 1463825961
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 56
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TokenType.cs

@@ -1,56 +0,0 @@
-//
-// TokenType.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Mono.Cecil {
-
-	public enum TokenType : uint {
-		Module = 0x00000000,
-		TypeRef = 0x01000000,
-		TypeDef = 0x02000000,
-		Field = 0x04000000,
-		Method = 0x06000000,
-		Param = 0x08000000,
-		InterfaceImpl = 0x09000000,
-		MemberRef = 0x0a000000,
-		CustomAttribute = 0x0c000000,
-		Permission = 0x0e000000,
-		Signature = 0x11000000,
-		Event = 0x14000000,
-		Property = 0x17000000,
-		ModuleRef = 0x1a000000,
-		TypeSpec = 0x1b000000,
-		Assembly = 0x20000000,
-		AssemblyRef = 0x23000000,
-		File = 0x26000000,
-		ExportedType = 0x27000000,
-		ManifestResource = 0x28000000,
-		GenericParam = 0x2a000000,
-		MethodSpec = 0x2b000000,
-		String = 0x70000000,
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/TokenType.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 6132b350d23caf84b93afa8fdd3b5a6d
-timeCreated: 1463825962
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 61
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/UserStringHeap.cs

@@ -1,61 +0,0 @@
-//
-// UserStringHeap.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Cecil.PE;
-
-namespace Mono.Cecil.Metadata
-{
-
-    sealed class UserStringHeap : StringHeap
-    {
-
-        public UserStringHeap(Section section, uint start, uint size)
-            : base(section, start, size)
-        {
-        }
-
-        protected override string ReadStringAt(uint index)
-        {
-            byte[] data = Section.Data;
-            int start = (int)(index + Offset);
-
-            uint length = (uint)(Mixin.ReadCompressedUInt32(data, ref start) & ~1);
-            if (length < 1)
-                return string.Empty;
-
-            var chars = new char[length / 2];
-
-            for (int i = start, j = 0; i < start + length; i += 2)
-                chars[j++] = (char)(data[i] | (data[i + 1] << 8));
-
-            return new string(chars);
-        }
-    }
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/UserStringHeap.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 864a3c24a907ba54d938c0612e4b102a
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 354
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Utilities.cs

@@ -1,354 +0,0 @@
-//
-// Utilities.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-using Mono.Cecil.Metadata;
-
-namespace Mono.Cecil
-{
-
-    static partial class Mixin
-    {
-
-        public static uint ReadCompressedUInt32(byte[] data, ref int position)
-        {
-            uint integer;
-            if ((data[position] & 0x80) == 0)
-            {
-                integer = data[position];
-                position++;
-            }
-            else if ((data[position] & 0x40) == 0)
-            {
-                integer = (uint)(data[position] & ~0x80) << 8;
-                integer |= data[position + 1];
-                position += 2;
-            }
-            else
-            {
-                integer = (uint)(data[position] & ~0xc0) << 24;
-                integer |= (uint)data[position + 1] << 16;
-                integer |= (uint)data[position + 2] << 8;
-                integer |= (uint)data[position + 3];
-                position += 4;
-            }
-            return integer;
-        }
-
-        public static MetadataToken GetMetadataToken(CodedIndex self, uint data)
-        {
-            uint rid;
-            TokenType token_type;
-            switch (self)
-            {
-                case CodedIndex.TypeDefOrRef:
-                    rid = data >> 2;
-                    switch (data & 3)
-                    {
-                        case 0:
-                            token_type = TokenType.TypeDef; goto ret;
-                        case 1:
-                            token_type = TokenType.TypeRef; goto ret;
-                        case 2:
-                            token_type = TokenType.TypeSpec; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.HasConstant:
-                    rid = data >> 2;
-                    switch (data & 3)
-                    {
-                        case 0:
-                            token_type = TokenType.Field; goto ret;
-                        case 1:
-                            token_type = TokenType.Param; goto ret;
-                        case 2:
-                            token_type = TokenType.Property; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.HasCustomAttribute:
-                    rid = data >> 5;
-                    switch (data & 31)
-                    {
-                        case 0:
-                            token_type = TokenType.Method; goto ret;
-                        case 1:
-                            token_type = TokenType.Field; goto ret;
-                        case 2:
-                            token_type = TokenType.TypeRef; goto ret;
-                        case 3:
-                            token_type = TokenType.TypeDef; goto ret;
-                        case 4:
-                            token_type = TokenType.Param; goto ret;
-                        case 5:
-                            token_type = TokenType.InterfaceImpl; goto ret;
-                        case 6:
-                            token_type = TokenType.MemberRef; goto ret;
-                        case 7:
-                            token_type = TokenType.Module; goto ret;
-                        case 8:
-                            token_type = TokenType.Permission; goto ret;
-                        case 9:
-                            token_type = TokenType.Property; goto ret;
-                        case 10:
-                            token_type = TokenType.Event; goto ret;
-                        case 11:
-                            token_type = TokenType.Signature; goto ret;
-                        case 12:
-                            token_type = TokenType.ModuleRef; goto ret;
-                        case 13:
-                            token_type = TokenType.TypeSpec; goto ret;
-                        case 14:
-                            token_type = TokenType.Assembly; goto ret;
-                        case 15:
-                            token_type = TokenType.AssemblyRef; goto ret;
-                        case 16:
-                            token_type = TokenType.File; goto ret;
-                        case 17:
-                            token_type = TokenType.ExportedType; goto ret;
-                        case 18:
-                            token_type = TokenType.ManifestResource; goto ret;
-                        case 19:
-                            token_type = TokenType.GenericParam; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.HasFieldMarshal:
-                    rid = data >> 1;
-                    switch (data & 1)
-                    {
-                        case 0:
-                            token_type = TokenType.Field; goto ret;
-                        case 1:
-                            token_type = TokenType.Param; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.HasDeclSecurity:
-                    rid = data >> 2;
-                    switch (data & 3)
-                    {
-                        case 0:
-                            token_type = TokenType.TypeDef; goto ret;
-                        case 1:
-                            token_type = TokenType.Method; goto ret;
-                        case 2:
-                            token_type = TokenType.Assembly; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.MemberRefParent:
-                    rid = data >> 3;
-                    switch (data & 7)
-                    {
-                        case 0:
-                            token_type = TokenType.TypeDef; goto ret;
-                        case 1:
-                            token_type = TokenType.TypeRef; goto ret;
-                        case 2:
-                            token_type = TokenType.ModuleRef; goto ret;
-                        case 3:
-                            token_type = TokenType.Method; goto ret;
-                        case 4:
-                            token_type = TokenType.TypeSpec; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.HasSemantics:
-                    rid = data >> 1;
-                    switch (data & 1)
-                    {
-                        case 0:
-                            token_type = TokenType.Event; goto ret;
-                        case 1:
-                            token_type = TokenType.Property; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.MethodDefOrRef:
-                    rid = data >> 1;
-                    switch (data & 1)
-                    {
-                        case 0:
-                            token_type = TokenType.Method; goto ret;
-                        case 1:
-                            token_type = TokenType.MemberRef; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.MemberForwarded:
-                    rid = data >> 1;
-                    switch (data & 1)
-                    {
-                        case 0:
-                            token_type = TokenType.Field; goto ret;
-                        case 1:
-                            token_type = TokenType.Method; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.Implementation:
-                    rid = data >> 2;
-                    switch (data & 3)
-                    {
-                        case 0:
-                            token_type = TokenType.File; goto ret;
-                        case 1:
-                            token_type = TokenType.AssemblyRef; goto ret;
-                        case 2:
-                            token_type = TokenType.ExportedType; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.CustomAttributeType:
-                    rid = data >> 3;
-                    switch (data & 7)
-                    {
-                        case 2:
-                            token_type = TokenType.Method; goto ret;
-                        case 3:
-                            token_type = TokenType.MemberRef; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.ResolutionScope:
-                    rid = data >> 2;
-                    switch (data & 3)
-                    {
-                        case 0:
-                            token_type = TokenType.Module; goto ret;
-                        case 1:
-                            token_type = TokenType.ModuleRef; goto ret;
-                        case 2:
-                            token_type = TokenType.AssemblyRef; goto ret;
-                        case 3:
-                            token_type = TokenType.TypeRef; goto ret;
-                        default:
-                            goto exit;
-                    }
-                case CodedIndex.TypeOrMethodDef:
-                    rid = data >> 1;
-                    switch (data & 1)
-                    {
-                        case 0:
-                            token_type = TokenType.TypeDef; goto ret;
-                        case 1:
-                            token_type = TokenType.Method; goto ret;
-                        default: goto exit;
-                    }
-                default:
-                    goto exit;
-            }
-        ret:
-            return new MetadataToken(token_type, rid);
-        exit:
-            return MetadataToken.Zero;
-        }
-
-
-        public static int GetSize(CodedIndex self, Func<Table, int> counter)
-        {
-            int bits;
-            Table[] tables;
-
-            switch (self)
-            {
-                case CodedIndex.TypeDefOrRef:
-                    bits = 2;
-                    tables = new[] { Table.TypeDef, Table.TypeRef, Table.TypeSpec };
-                    break;
-                case CodedIndex.HasConstant:
-                    bits = 2;
-                    tables = new[] { Table.Field, Table.Param, Table.Property };
-                    break;
-                case CodedIndex.HasCustomAttribute:
-                    bits = 5;
-                    tables = new[] {
-					Table.Method, Table.Field, Table.TypeRef, Table.TypeDef, Table.Param, Table.InterfaceImpl, Table.MemberRef,
-					Table.Module, Table.DeclSecurity, Table.Property, Table.Event, Table.StandAloneSig, Table.ModuleRef,
-					Table.TypeSpec, Table.Assembly, Table.AssemblyRef, Table.File, Table.ExportedType,
-					Table.ManifestResource, Table.GenericParam
-				};
-                    break;
-                case CodedIndex.HasFieldMarshal:
-                    bits = 1;
-                    tables = new[] { Table.Field, Table.Param };
-                    break;
-                case CodedIndex.HasDeclSecurity:
-                    bits = 2;
-                    tables = new[] { Table.TypeDef, Table.Method, Table.Assembly };
-                    break;
-                case CodedIndex.MemberRefParent:
-                    bits = 3;
-                    tables = new[] { Table.TypeDef, Table.TypeRef, Table.ModuleRef, Table.Method, Table.TypeSpec };
-                    break;
-                case CodedIndex.HasSemantics:
-                    bits = 1;
-                    tables = new[] { Table.Event, Table.Property };
-                    break;
-                case CodedIndex.MethodDefOrRef:
-                    bits = 1;
-                    tables = new[] { Table.Method, Table.MemberRef };
-                    break;
-                case CodedIndex.MemberForwarded:
-                    bits = 1;
-                    tables = new[] { Table.Field, Table.Method };
-                    break;
-                case CodedIndex.Implementation:
-                    bits = 2;
-                    tables = new[] { Table.File, Table.AssemblyRef, Table.ExportedType };
-                    break;
-                case CodedIndex.CustomAttributeType:
-                    bits = 3;
-                    tables = new[] { Table.Method, Table.MemberRef };
-                    break;
-                case CodedIndex.ResolutionScope:
-                    bits = 2;
-                    tables = new[] { Table.Module, Table.ModuleRef, Table.AssemblyRef, Table.TypeRef };
-                    break;
-                case CodedIndex.TypeOrMethodDef:
-                    bits = 1;
-                    tables = new[] { Table.TypeDef, Table.Method };
-                    break;
-                default:
-                    throw new ArgumentException();
-            }
-
-            int max = 0;
-
-            for (int i = 0; i < tables.Length; i++)
-            {
-                max = System.Math.Max(counter(tables[i]), max);
-            }
-
-            return max < (1 << (16 - bits)) ? 2 : 4;
-        }
-    }
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.Metadata/Utilities.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 12a56c8fcfa49ff489b2839e2b1b4847
-timeCreated: 1463825960
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: aed292c217112874d8fac8f601dd8d8f
-folderAsset: yes
-timeCreated: 1463825952
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 51
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamReader.cs

@@ -1,51 +0,0 @@
-//
-// BinaryStreamReader.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.IO;
-
-namespace Mono.Cecil.PE {
-
-	class BinaryStreamReader : BinaryReader {
-
-		public BinaryStreamReader (Stream stream)
-			: base (stream)
-		{
-		}
-
-		protected void Advance (int bytes)
-		{
-			BaseStream.Seek (bytes, SeekOrigin.Current);
-		}
-
-		protected DataDirectory ReadDataDirectory ()
-		{
-			return new DataDirectory (ReadUInt32 (), ReadUInt32 ());
-		}
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamReader.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 9f92e484fa69fc641bf477585eda7f7f
-timeCreated: 1463825963
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 31
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamWriter.cs

@@ -1,31 +0,0 @@
-//
-// BinaryStreamWriter.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.IO;
-

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/BinaryStreamWriter.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: fc74c8419f46e3149a9bc9c977948de6
-timeCreated: 1463825965
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 184
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/ByteBuffer.cs

@@ -1,184 +0,0 @@
-//
-// ByteBuffer.cs
-//
-// Author:
-//   Jb Evain (jbevain@gmail.com)
-//
-// Copyright (c) 2008 - 2011 Jb Evain
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace Mono.Cecil.PE {
-
-	class ByteBuffer {
-
-		internal byte [] buffer;
-		internal int length;
-		internal int position;
-
-		public ByteBuffer ()
-		{
-			this.buffer = Empty<byte>.Array;
-		}
-
-		public ByteBuffer (int length)
-		{
-			this.buffer = new byte [length];
-		}
-
-		public ByteBuffer (byte [] buffer)
-		{
-			this.buffer = buffer ?? Empty<byte>.Array;
-			this.length = this.buffer.Length;
-		}
-
-		public void Reset (byte [] buffer)
-		{
-			this.buffer = buffer ?? Empty<byte>.Array;
-			this.length = this.buffer.Length;
-		}
-
-		public void Advance (int length)
-		{
-			position += length;
-		}
-
-		public byte ReadByte ()
-		{
-			return buffer [position++];
-		}
-
-		public sbyte ReadSByte ()
-		{
-			return (sbyte) ReadByte ();
-		}
-
-		public byte [] ReadBytes (int length)
-		{
-			var bytes = new byte [length];
-			Buffer.BlockCopy (buffer, position, bytes, 0, length);
-			position += length;
-			return bytes;
-		}
-
-		public ushort ReadUInt16 ()
-		{
-			ushort value = (ushort) (buffer [position]
-				| (buffer [position + 1] << 8));
-			position += 2;
-			return value;
-		}
-
-		public short ReadInt16 ()
-		{
-			return (short) ReadUInt16 ();
-		}
-
-		public uint ReadUInt32 ()
-		{
-			uint value = (uint) (buffer [position]
-				| (buffer [position + 1] << 8)
-				| (buffer [position + 2] << 16)
-				| (buffer [position + 3] << 24));
-			position += 4;
-			return value;
-		}
-
-		public int ReadInt32 ()
-		{
-			return (int) ReadUInt32 ();
-		}
-
-		public ulong ReadUInt64 ()
-		{
-			uint low = ReadUInt32 ();
-			uint high = ReadUInt32 ();
-
-			return (((ulong) high) << 32) | low;
-		}
-
-		public long ReadInt64 ()
-		{
-			return (long) ReadUInt64 ();
-		}
-
-		public uint ReadCompressedUInt32 ()
-		{
-			byte first = ReadByte ();
-			if ((first & 0x80) == 0)
-				return first;
-
-			if ((first & 0x40) == 0)
-				return ((uint) (first & ~0x80) << 8)
-					| ReadByte ();
-
-			return ((uint) (first & ~0xc0) << 24)
-				| (uint) ReadByte () << 16
-				| (uint) ReadByte () << 8
-				| ReadByte ();
-		}
-
-		public int ReadCompressedInt32 ()
-		{
-			var value = (int) (ReadCompressedUInt32 () >> 1);
-			if ((value & 1) == 0)
-				return value;
-			if (value < 0x40)
-				return value - 0x40;
-			if (value < 0x2000)
-				return value - 0x2000;
-			if (value < 0x10000000)
-				return value - 0x10000000;
-			return value - 0x20000000;
-		}
-
-		public float ReadSingle ()
-		{
-			if (!BitConverter.IsLittleEndian) {
-				var bytes = ReadBytes (4);
-				Array.Reverse (bytes);
-				return BitConverter.ToSingle (bytes, 0);
-			}
-
-			float value = BitConverter.ToSingle (buffer, position);
-			position += 4;
-			return value;
-		}
-
-		public double ReadDouble ()
-		{
-			if (!BitConverter.IsLittleEndian) {
-				var bytes = ReadBytes (8);
-				Array.Reverse (bytes);
-				return BitConverter.ToDouble (bytes, 0);
-			}
-
-			double value = BitConverter.ToDouble (buffer, position);
-			position += 8;
-			return value;
-		}
-
-
-
-	}
-}

+ 0 - 12
Unity/Assets/Plugins/Mono.Cecil.20/MonoCecil/Mono.Cecil.PE/ByteBuffer.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: af20c04b27507d744b4b60c9421d870e
-timeCreated: 1463825964
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

部分文件因为文件数量过多而无法显示