Commit Graph

27 Commits (main)

Author SHA1 Message Date
walon 48c91f497b [fix] 修复MethodBridge/Generator GetOrCalculateTypeInfoSignature计算等价类时未考虑到ClassLayout、Layout和FieldOffset因素的bug 2024-07-18 14:12:23 +08:00
walon 303c6c7b35 [fix] 修复计算Native2Manager桥接函数未考虑到MonoPInvokeCallback函数,导致从lua或者其他语言调用c#热更新函数有时候会出现UnsupportedNative2ManagedMethod的bug 2024-06-10 13:18:46 +08:00
walon fc685a99ca [fix] 修复计算 MonoPInvokeCallback的CallingConvention时,如果delegate在其他程序集中定义,会被错误当作Winapi,导致wrapper签名计算错误的bug 2024-05-30 13:08:24 +08:00
walon d431aeb019 [new] 支持MonoPInvokeCallback函数的参数或返回类型为struct类型
[fix] 修复ReversePInvokeWrapper函数定义未包含调用约定的bug
[refactor] 合并ReversePInvokeMethodStub到MethodBridge,同时将MetadataModule中ReversePInvoke相关代码移到InterpreterModule
2024-05-30 13:08:21 +08:00
walon 3de931a3af [opt] 打包时检查生成桥接函数时的development选项与当前development选项一致。`Generate/All`之后切换development选项再打包,将会产生严重的崩溃 2024-05-30 13:07:23 +08:00
walon ec5f2ef05e [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下并不等价 2024-05-14 12:48:15 +08:00
walon 9b269ea4c2 [opt] 优化桥接函数生成,将同构的struct映射到同一个结构,减少了30-35%的桥接函数数量 2023-12-16 15:17:30 +08:00
walon 63d9e7f4c3 [fix] 修复当出现非常规字段名时生成的桥接函数代码文件有编译错误的bug 2023-11-24 10:00:57 +08:00
walon 47fbd443c1 [fix] 修复桥接函数计算时未归结函数参数类型,导致出现多个同名签名的bug 2023-11-01 20:34:24 +08:00
walon 1bd27a3e22 [fix] 修复生成桥接函数时,如果热更新程序集未包含任何代码直接引用了某个aot程序集,则没有为该aot程序集生成桥接函数,导致出现NotSupportNative2Managed异常的bug 2023-10-08 13:27:23 +08:00
walon 47e43b0afa [change] 小幅重构生成Native2Managed及AdjustorThunk的代码,消除重复代码 2023-08-31 19:22:07 +08:00
walon 9dafabd1ee [fix] 修复桥接函数签名计算的bug 2023-08-31 11:06:06 +08:00
walon 5857696b56 [change] 日志和异常文本换成英文,方便海外开发者 2023-08-30 11:07:12 +08:00
walon 69d3303f3d [opt] 大幅优化Native2Managed方向桥接函数传参性能 2023-08-24 19:26:50 +08:00
walon 9eb6dda71b [refactor] 重构桥接函数,彻底解决跨平台问题 2023-08-24 12:58:09 +08:00
walon 679c21da43 [fix] 修复计算桥接函数未考虑到泛型类的成员函数中可能包含Native2Manager调用 2023-07-12 23:09:58 +08:00
walon 3d68dc4db3 [fix] 解决MethodBridge生成不稳定的问题 2023-06-27 08:57:02 +08:00
walon c462aeb2ef [fix] 修复计算桥接函数时未考虑到补充元数据泛型实例化会导致访问到一些非公开的函数的情况,导致少生成一些必要的桥接函数 2023-06-07 11:47:17 +08:00
walon a107f43173 [fix] 修复生成N2M桥接函数Stub时,失误将末尾项的sinature填成""的bug,正确应该是nullptr 2022-12-12 12:01:02 +08:00
walon 276307dc51 [fix] 修复 MethodBridge.Analyzer::TryAddAndWalkGenericType 某些情况下抛出空指针异常的bug 2022-10-19 11:43:56 +08:00
walon 15319a59fa [new] 支持WebGL 2022-10-19 09:54:33 +08:00
walon d8e155dc25 [new] MonoPInvokeCallback支持任意签名的函数
[refactor] 重构模板文件,除去重复。统一调整生成文件的输出目录到 hybridclr/generated
2022-10-17 21:38:39 +08:00
walon 9ea240ab82 重构 2022-10-17 12:16:18 +08:00
walon e3095ccc01 [fix] 修复桥接函数遍历收集签名时,未等遍历完就结束执行,导致生成的桥接文件不完整的bug 2022-10-14 14:47:27 +08:00
walon 823877275c [refactor] 重构methodPointer,微小调整了桥接函数生成 2022-10-14 11:44:30 +08:00
walon a56f940890 [fix] 修复遗漏扫描泛型类里的非泛型函数,导致桥接函数缺失的问题 2022-09-28 15:35:37 +08:00
walon 0af6f704b2 [refactor] 重构。将7Zip及UnitFS移入HybridCLR.Editor模块。合并Generate命令。 2022-09-23 09:40:06 +08:00