[fix] 修复计算struct等价性时,将struct平铺展开计算等价,在某些平台并不适用的bug。例如 struct A { uint8_t x; A2 y; } struct A2 { uint8_t x; int32_t y;}; 跟 struct B {uint8_t x; uint8_t y; int32_t z;} 在x86_64 abi下并不等价

main
walon 2024-04-23 11:42:22 +08:00
parent 6d0ceaa4f5
commit ec5f2ef05e
1 changed files with 1 additions and 1 deletions

View File

@ -288,7 +288,7 @@ namespace HybridCLR.Editor.MethodBridge
var sigBuf = new StringBuilder(); var sigBuf = new StringBuilder();
foreach (var field in ati.fields) foreach (var field in ati.fields)
{ {
sigBuf.Append(GetOrCalculateTypeInfoSignature(ToIsomorphicType(field))); sigBuf.Append("{" + GetOrCalculateTypeInfoSignature(ToIsomorphicType(field)) + "}");
} }
return ati.signature = sigBuf.ToString(); return ati.signature = sigBuf.ToString();
} }