-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix all runtime IL generation paths from passing GC types to unmanaged function calls. #35026
Conversation
1e43992
to
8d6f00f
Compare
@davidwrighton and @MichalStrehovsky for crossgen2 changes. |
Hello @AaronRobinsonMSFT! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
Le sigh... Dynamic runtime |
8d6f00f
to
8ab8d24
Compare
8ab8d24
to
512a39b
Compare
... and IJW ... Also it looks like during the switch over to SDK test projects we inadvertently disabled all native COM client tests for consuming managed COM servers. I am re-enabling them in this PR but will rebase when I merge so the two commits exist. |
... and WinRT ... |
Update crossgen2 IL stub generators. Update Dynamic runtime stub generator. Add assert for GC types in unmanaged function calls.
512a39b
to
2433309
Compare
Fixes #34279
Update: The assert added in this PR impacts more than first thought. When a P/Invoke, call in IL, is inlined any native arguments must be converted (
conv.i
/conv.u
) prior to the call since the IL marshaler fixes in this PR won't run. See #35187 for an example./cc @jkoritzinsky @elinor-fung @jkotas @AndyAyersMS