Enable Mono for using faster invoke stubs#89108
Conversation
|
Tagging subscribers to this area: @dotnet/area-system-reflection Issue Details[Verifying Tests]
|
|
just curious - is it possible to avoid boxed |
It's done this way primarily for the interpreted path, which doesn't use emit and is located in the native runtime -- it either needs to be passed a pointer to a nullable or have special logic that creates a nullable from the Also, for both the interpreted path and the various emit paths we also wanted to normalize the |
src/libraries/System.Private.CoreLib/src/System/Reflection/InvokerEmitUtil.cs
Show resolved
Hide resolved
| if (vtype == typeof(IntPtr) || vtype == typeof(UIntPtr)) | ||
| if (vtype == typeof(IntPtr)) | ||
| return CheckValueStatus.Success; | ||
|
|
There was a problem hiding this comment.
Thanks for this. With the last commit, it is no longer necessary. Also removed from core CLR.
It was necessary previously since the Opcodes.UnboxAny would throw a InvalidCastException for UIntPtr arguments.
Add support for Mono to emit faster invoke stubs for both the new invoke APIs added in #88415 as well as standard invoke.
Replacement for closed issue #88952