-
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
Change callvirt
into calli
for virtual delegates
#83461
Conversation
…ntations Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-2.local>
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-2.local>
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-4.local>
src/mono/mono/metadata/marshal.c
Outdated
@@ -6287,7 +6283,7 @@ mono_marshal_free_dynamic_wrappers (MonoMethod *method) | |||
if (image->wrapper_caches.runtime_invoke_method_cache) | |||
clear_runtime_invoke_method_cache (image->wrapper_caches.runtime_invoke_method_cache, method); | |||
if (image->wrapper_caches.delegate_abstract_invoke_cache) | |||
g_hash_table_foreach_remove (image->wrapper_caches.delegate_abstract_invoke_cache, signature_pointer_pair_matches_pointer, method); | |||
g_hash_table_remove (image->wrapper_caches.delegate_abstract_invoke_cache, mono_method_signature_internal (method)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not be needed anymore since the wrappers are no longer associated with the method.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And how is that cache going to be freed if we remove it from here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its freed already in marshal.c, we just don't need to handle it here, since these wrappers will no longer depend on dynamic methods.
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-4.local>
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-4.local>
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-4.local>
I can reproduce the browser System.Runtime.Tests failure in console with |
Error info from a modified debug build:
|
That assertion is in ftnptr_to_imethod, which means it's either in the implementation of CALLI or interp_delegate_ctor. |
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-4.local>
Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-5.local>
This version is ready to be merged |
Let's merge this after Preview4 snap. |
Related to #83329.