From 7f2ee9c22bc820bc382168317a43ff2a01cffa41 Mon Sep 17 00:00:00 2001 From: walon Date: Thu, 22 Sep 2022 16:57:01 +0800 Subject: [PATCH] =?UTF-8?q?[refactor]=20=E9=87=8D=E6=9E=84=E6=A1=A5?= =?UTF-8?q?=E6=8E=A5=E5=87=BD=E6=95=B0=E7=AD=BE=E5=90=8D=E3=80=82=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E4=B8=8D=E5=8C=BA=E5=88=86=20i1,u1=20i2,u2=E4=B9=8B?= =?UTF-8?q?=E7=B1=BB=E7=AD=BE=E5=90=8D=EF=BC=8C=E7=8E=B0=E5=9C=A8=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=8C=BA=E5=88=86=EF=BC=8C=E5=9B=A0=E4=B8=BA=E5=9C=A8?= =?UTF-8?q?=E4=B8=80=E4=BA=9Babi=E7=9A=84=E7=BC=96=E8=AF=91=E5=99=A8?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8B=EF=BC=8C=E5=8F=AF=E8=83=BD=E5=87=BA?= =?UTF-8?q?=E7=8E=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Editor/MetaUtil.cs | 20 +++++------ Editor/MethodBridgeGenerator.meta | 2 +- .../MethodBridgeGenerator/Generator.cs.meta | 2 +- .../MethodBridgeSig.cs.meta | 2 +- .../MethodBridgeGenerator/ParamInfo.cs.meta | 2 +- .../ParamOrReturnType.cs | 15 ++++---- .../ParamOrReturnType.cs.meta | 2 +- .../MethodBridgeGenerator/PlatformABI.cs.meta | 2 +- .../PlatformAdaptorBase.cs | 22 ++++++------ .../PlatformAdaptorBase.cs.meta | 2 +- .../PlatformAdaptor_Arm64.cs | 2 +- .../PlatformAdaptor_Arm64.cs.meta | 2 +- .../PlatformAdaptor_Universal32.cs.meta | 2 +- .../PlatformAdaptor_Universal64.cs.meta | 2 +- Editor/MethodBridgeGenerator/TypeInfo.cs | 36 ++++++++++++------- Editor/MethodBridgeGenerator/TypeInfo.cs.meta | 2 +- .../ValueTypeSizeAligmentCalculator.cs.meta | 2 +- Editor/SettingsUtil.cs.meta | 2 +- Plugins/UnityFS/UnityBinFile.cs.meta | 2 +- Plugins/UnityFS/UnityBinFileDefines.cs.meta | 2 +- Plugins/UnityFS/UnityBinUtils.cs.meta | 2 +- Plugins/dnlib.dll.meta | 2 +- Runtime/RuntimeApi.cs.meta | 2 +- package.json | 2 +- 24 files changed, 73 insertions(+), 60 deletions(-) diff --git a/Editor/MetaUtil.cs b/Editor/MetaUtil.cs index b5ea5ad..0b5aab0 100644 --- a/Editor/MetaUtil.cs +++ b/Editor/MetaUtil.cs @@ -31,26 +31,26 @@ namespace HybridCLR.Editor switch (typeSig.ElementType) { case ElementType.Void: return corTypes.Void; - case ElementType.Boolean: - case ElementType.Char: - case ElementType.I1: + case ElementType.Boolean: return corTypes.Byte; + case ElementType.Char: return corTypes.UInt16; + case ElementType.I1: return corTypes.SByte; case ElementType.U1:return corTypes.Byte; - case ElementType.I2: + case ElementType.I2: return corTypes.Int16; case ElementType.U2: return corTypes.UInt16; - case ElementType.I4: + case ElementType.I4: return corTypes.Int32; case ElementType.U4: return corTypes.UInt32; - case ElementType.I8: + case ElementType.I8: return corTypes.Int64; case ElementType.U8: return corTypes.UInt64; case ElementType.R4: return corTypes.Single; case ElementType.R8: return corTypes.Double; case ElementType.String: return corTypes.Object; case ElementType.TypedByRef: return corTypes.TypedReference; - case ElementType.I: + case ElementType.I: return corTypes.IntPtr; case ElementType.U: return corTypes.UIntPtr; case ElementType.Object: return corTypes.Object; case ElementType.Sentinel: return typeSig; - case ElementType.Ptr: return corTypes.UIntPtr; - case ElementType.ByRef: return corTypes.UIntPtr; + case ElementType.Ptr: return corTypes.IntPtr; + case ElementType.ByRef: return corTypes.IntPtr; case ElementType.SZArray: return corTypes.Object; case ElementType.Array: return corTypes.Object; case ElementType.ValueType: return typeSig; @@ -64,7 +64,7 @@ namespace HybridCLR.Editor } return new GenericInstSig(gia.GenericType, gia.GenericArguments.Select(ga => ToShareTypeSig(ga)).ToList()); } - case ElementType.FnPtr: return corTypes.UIntPtr; + case ElementType.FnPtr: return corTypes.IntPtr; case ElementType.ValueArray: return typeSig; case ElementType.Module: return typeSig; default: diff --git a/Editor/MethodBridgeGenerator.meta b/Editor/MethodBridgeGenerator.meta index d04da9b..5ff8e80 100644 --- a/Editor/MethodBridgeGenerator.meta +++ b/Editor/MethodBridgeGenerator.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4aa66b41c89ed7742ad067898725f7ff +guid: 0c2444f09010bce41a52d951b7100c49 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Editor/MethodBridgeGenerator/Generator.cs.meta b/Editor/MethodBridgeGenerator/Generator.cs.meta index 84054d4..914508e 100644 --- a/Editor/MethodBridgeGenerator/Generator.cs.meta +++ b/Editor/MethodBridgeGenerator/Generator.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3171ed79d43e06c4b8c889b0a3f38969 +guid: e42a0f3bcbc5ddf438a85ae16c1b3116 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/MethodBridgeSig.cs.meta b/Editor/MethodBridgeGenerator/MethodBridgeSig.cs.meta index 8ae3b55..0a0a97a 100644 --- a/Editor/MethodBridgeGenerator/MethodBridgeSig.cs.meta +++ b/Editor/MethodBridgeGenerator/MethodBridgeSig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cbe63fb39b5bdcc448f3589b475fb5d8 +guid: 28e06667d06f37b4990b16f54f903a35 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/ParamInfo.cs.meta b/Editor/MethodBridgeGenerator/ParamInfo.cs.meta index 517be64..0bcaa0f 100644 --- a/Editor/MethodBridgeGenerator/ParamInfo.cs.meta +++ b/Editor/MethodBridgeGenerator/ParamInfo.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c04e163336b93af44b4b565d0ab195e2 +guid: f97bd67938e4a9c4b9c8ddcdad621f60 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/ParamOrReturnType.cs b/Editor/MethodBridgeGenerator/ParamOrReturnType.cs index 5a3814c..d5d0bf1 100644 --- a/Editor/MethodBridgeGenerator/ParamOrReturnType.cs +++ b/Editor/MethodBridgeGenerator/ParamOrReturnType.cs @@ -9,13 +9,14 @@ namespace HybridCLR.Editor.MethodBridgeGenerator public enum ParamOrReturnType { VOID, - I1_U1, - //U1, - I2_U2, - //U2, - I4_U4, - I8_U8, - //I_U, + I1, + U1, + I2, + U2, + I4, + U4, + I8, + U8, R4, R8, ARM64_HFA_FLOAT_2, diff --git a/Editor/MethodBridgeGenerator/ParamOrReturnType.cs.meta b/Editor/MethodBridgeGenerator/ParamOrReturnType.cs.meta index 78fd4e0..0d0063b 100644 --- a/Editor/MethodBridgeGenerator/ParamOrReturnType.cs.meta +++ b/Editor/MethodBridgeGenerator/ParamOrReturnType.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7886905937fafb64999dc4e358565982 +guid: 6070162cd5afff74f99af129c50fda5a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/PlatformABI.cs.meta b/Editor/MethodBridgeGenerator/PlatformABI.cs.meta index e257472..bea367c 100644 --- a/Editor/MethodBridgeGenerator/PlatformABI.cs.meta +++ b/Editor/MethodBridgeGenerator/PlatformABI.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: deee8d06a7f05bf4d9ab4b78f0a8a47c +guid: b9f06ff0612105b4ea20e0309e759e24 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs b/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs index 9359aac..d6134a3 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs +++ b/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs @@ -21,7 +21,7 @@ namespace HybridCLR.Editor.MethodBridgeGenerator public virtual bool IsSupportHFA => false; - public TypeInfo GetNativeIntTypeInfo() => IsArch32 ? TypeInfo.s_i4u4 : TypeInfo.s_i8u8; + public TypeInfo GetNativeIntTypeInfo() => IsArch32 ? TypeInfo.s_i4 : TypeInfo.s_i8; public abstract void GenerateManaged2NativeMethod(MethodBridgeSig method, List lines); @@ -73,20 +73,20 @@ namespace HybridCLR.Editor.MethodBridgeGenerator switch(type.ElementType) { case ElementType.Void: return TypeInfo.s_void; - case ElementType.Boolean: - case ElementType.I1: - case ElementType.U1: return TypeInfo.s_i1u1; + case ElementType.Boolean: return TypeInfo.s_u1; + case ElementType.I1: return TypeInfo.s_i1; + case ElementType.U1: return TypeInfo.s_u1; + case ElementType.I2: return TypeInfo.s_i2; case ElementType.Char: - case ElementType.I2: - case ElementType.U2: return TypeInfo.s_i2u2; - case ElementType.I4: - case ElementType.U4: return TypeInfo.s_i4u4; - case ElementType.I8: - case ElementType.U8: return TypeInfo.s_i8u8; + case ElementType.U2: return TypeInfo.s_u2; + case ElementType.I4: return TypeInfo.s_i4; + case ElementType.U4: return TypeInfo.s_u4; + case ElementType.I8: return TypeInfo.s_i8; + case ElementType.U8: return TypeInfo.s_u8; case ElementType.R4: return TypeInfo.s_r4; case ElementType.R8: return TypeInfo.s_r8; + case ElementType.U: return IsArch32 ? TypeInfo.s_u4 : TypeInfo.s_u8; case ElementType.I: - case ElementType.U: case ElementType.String: case ElementType.Ptr: case ElementType.ByRef: diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs.meta b/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs.meta index f18ef36..0038277 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs.meta +++ b/Editor/MethodBridgeGenerator/PlatformAdaptorBase.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ebf14107fd82b364cb7d61276d444829 +guid: 2d2e42e9b08396e42bbaaab79865529f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs b/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs index 92d23b6..cec6745 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs +++ b/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs @@ -34,7 +34,7 @@ namespace HybridCLR.Editor.MethodBridgeGenerator int typeSize = type.Size; if (typeSize <= 8) { - return TypeInfo.s_i8u8; + return TypeInfo.s_i8; } if (typeSize <= 16) { diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs.meta b/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs.meta index 4b9a4a1..b45c709 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs.meta +++ b/Editor/MethodBridgeGenerator/PlatformAdaptor_Arm64.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bff17a6e8ee060c4eb9ac97fcf30bf78 +guid: 4bd8c3b77879ac44b8921a67b5216ca6 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal32.cs.meta b/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal32.cs.meta index 3b2f55a..71cc4ff 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal32.cs.meta +++ b/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal32.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fb741900113b22443a2054ddba6b131b +guid: cee9b0142fca88747b2414ca4b3d2b7a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal64.cs.meta b/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal64.cs.meta index d782aae..c73f4ac 100644 --- a/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal64.cs.meta +++ b/Editor/MethodBridgeGenerator/PlatformAdaptor_Universal64.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 26324be9505c9f54996bcbb62ba49132 +guid: 96d94c3da2c6a394590218ce38eaec72 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/TypeInfo.cs b/Editor/MethodBridgeGenerator/TypeInfo.cs index de3c494..9ed494a 100644 --- a/Editor/MethodBridgeGenerator/TypeInfo.cs +++ b/Editor/MethodBridgeGenerator/TypeInfo.cs @@ -10,10 +10,14 @@ namespace HybridCLR.Editor.MethodBridgeGenerator { public static readonly TypeInfo s_void = new TypeInfo(ParamOrReturnType.VOID); - public static readonly TypeInfo s_i1u1 = new TypeInfo(ParamOrReturnType.I1_U1); - public static readonly TypeInfo s_i2u2 = new TypeInfo(ParamOrReturnType.I2_U2); - public static readonly TypeInfo s_i4u4 = new TypeInfo(ParamOrReturnType.I4_U4); - public static readonly TypeInfo s_i8u8 = new TypeInfo(ParamOrReturnType.I8_U8); + public static readonly TypeInfo s_i1 = new TypeInfo(ParamOrReturnType.I1); + public static readonly TypeInfo s_u1 = new TypeInfo(ParamOrReturnType.U1); + public static readonly TypeInfo s_i2 = new TypeInfo(ParamOrReturnType.I2); + public static readonly TypeInfo s_u2 = new TypeInfo(ParamOrReturnType.U2); + public static readonly TypeInfo s_i4 = new TypeInfo(ParamOrReturnType.I4); + public static readonly TypeInfo s_u4 = new TypeInfo(ParamOrReturnType.U4); + public static readonly TypeInfo s_i8 = new TypeInfo(ParamOrReturnType.I8); + public static readonly TypeInfo s_u8 = new TypeInfo(ParamOrReturnType.U8); public static readonly TypeInfo s_r4 = new TypeInfo(ParamOrReturnType.R4); public static readonly TypeInfo s_r8 = new TypeInfo(ParamOrReturnType.R8); public static readonly TypeInfo s_i16 = new TypeInfo(ParamOrReturnType.I16); @@ -64,10 +68,14 @@ namespace HybridCLR.Editor.MethodBridgeGenerator switch (PorType) { case ParamOrReturnType.VOID: return "v"; - case ParamOrReturnType.I1_U1: return "i1"; - case ParamOrReturnType.I2_U2: return "i2"; - case ParamOrReturnType.I4_U4: return "i4"; - case ParamOrReturnType.I8_U8: return "i8"; + case ParamOrReturnType.I1: return "i1"; + case ParamOrReturnType.U1: return "u1"; + case ParamOrReturnType.I2: return "i2"; + case ParamOrReturnType.U2: return "u2"; + case ParamOrReturnType.I4: return "i4"; + case ParamOrReturnType.U4: return "u4"; + case ParamOrReturnType.I8: return "i8"; + case ParamOrReturnType.U8: return "u8"; case ParamOrReturnType.R4: return "r4"; case ParamOrReturnType.R8: return "r8"; case ParamOrReturnType.I16: return "i16"; @@ -91,10 +99,14 @@ namespace HybridCLR.Editor.MethodBridgeGenerator switch (PorType) { case ParamOrReturnType.VOID: return "void"; - case ParamOrReturnType.I1_U1: return "int8_t"; - case ParamOrReturnType.I2_U2: return "int16_t"; - case ParamOrReturnType.I4_U4: return "int32_t"; - case ParamOrReturnType.I8_U8: return "int64_t"; + case ParamOrReturnType.I1: return "int8_t"; + case ParamOrReturnType.U1: return "uint8_t"; + case ParamOrReturnType.I2: return "int16_t"; + case ParamOrReturnType.U2: return "uint16_t"; + case ParamOrReturnType.I4: return "int32_t"; + case ParamOrReturnType.U4: return "uint32_t"; + case ParamOrReturnType.I8: return "int64_t"; + case ParamOrReturnType.U8: return "uint64_t"; case ParamOrReturnType.R4: return "float"; case ParamOrReturnType.R8: return "double"; case ParamOrReturnType.I16: return "ValueTypeSize16"; diff --git a/Editor/MethodBridgeGenerator/TypeInfo.cs.meta b/Editor/MethodBridgeGenerator/TypeInfo.cs.meta index 1ba9358..9194b6b 100644 --- a/Editor/MethodBridgeGenerator/TypeInfo.cs.meta +++ b/Editor/MethodBridgeGenerator/TypeInfo.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5afd7344483678a4abcb56158fd1442d +guid: 804237f201e1f7a4da1729e0eb11f75f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/MethodBridgeGenerator/ValueTypeSizeAligmentCalculator.cs.meta b/Editor/MethodBridgeGenerator/ValueTypeSizeAligmentCalculator.cs.meta index 97cf075..b08838a 100644 --- a/Editor/MethodBridgeGenerator/ValueTypeSizeAligmentCalculator.cs.meta +++ b/Editor/MethodBridgeGenerator/ValueTypeSizeAligmentCalculator.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 49b3dbcebadb1b543a42e01afec07ed1 +guid: 40dd1d9a2278f7846a9baa2041f74858 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/SettingsUtil.cs.meta b/Editor/SettingsUtil.cs.meta index 03ce589..323dcf6 100644 --- a/Editor/SettingsUtil.cs.meta +++ b/Editor/SettingsUtil.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bf7714fc37515834382cd5836b503a9f +guid: 381c08faeafbc004f97504eeba87380d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Plugins/UnityFS/UnityBinFile.cs.meta b/Plugins/UnityFS/UnityBinFile.cs.meta index e53b742..457dbb7 100644 --- a/Plugins/UnityFS/UnityBinFile.cs.meta +++ b/Plugins/UnityFS/UnityBinFile.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ae7ec6e3674077d46898fe821d24bf85 +guid: 7f9902041e9a1ff4c9f2d65d6384530d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Plugins/UnityFS/UnityBinFileDefines.cs.meta b/Plugins/UnityFS/UnityBinFileDefines.cs.meta index d9192c7..89a829a 100644 --- a/Plugins/UnityFS/UnityBinFileDefines.cs.meta +++ b/Plugins/UnityFS/UnityBinFileDefines.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 96788c7fe08d5d54d95a87cfbdcb643a +guid: 10655ce82e730324db6ae297f77df04b MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Plugins/UnityFS/UnityBinUtils.cs.meta b/Plugins/UnityFS/UnityBinUtils.cs.meta index e0f9bf9..4be54e7 100644 --- a/Plugins/UnityFS/UnityBinUtils.cs.meta +++ b/Plugins/UnityFS/UnityBinUtils.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bf7c4cf970660614fb54d838ec6e7eda +guid: 12a24c30a3914be418be10cfebfa9649 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Plugins/dnlib.dll.meta b/Plugins/dnlib.dll.meta index 945aef3..bdb7a88 100644 --- a/Plugins/dnlib.dll.meta +++ b/Plugins/dnlib.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 97dc0bbfed2593247a18261f1c2fdf66 +guid: b93c6604eb031674b80de14cd4458dc0 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Runtime/RuntimeApi.cs.meta b/Runtime/RuntimeApi.cs.meta index 142d90f..6ed5cdc 100644 --- a/Runtime/RuntimeApi.cs.meta +++ b/Runtime/RuntimeApi.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3c8b35876046d1747ae7d62244ec693f +guid: 0d58bdc22b6d6b54ab6791baf16a0a3d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/package.json b/package.json index dffe401..628d456 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.focus-creative-games.hybridclr_unity", - "version": "0.1.0", + "version": "0.2.0", "displayName": "HybridCLR", "description": "Unity package for HybridCLR. It includes editor and runtime scripts and assets for HybridCLR", "category": "Runtime",