[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下并不等价
parent
6d0ceaa4f5
commit
ec5f2ef05e
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue