Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Use native code slot for default interface methods #25770

Merged
merged 1 commit into from
Aug 19, 2019
Merged

Conversation

kouvel
Copy link
Member

@kouvel kouvel commented Jul 18, 2019

  • So that MethodDesc::GetNativeCode() can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
  • Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
  • Reenabled a couple of default interface method tests under GCStress
  • Other small cleanup

Fixes https://github.com/dotnet/coreclr/issues/25690

@kouvel kouvel added this to the Future milestone Jul 18, 2019
@kouvel kouvel self-assigned this Jul 18, 2019
@jkotas jkotas closed this Jul 18, 2019
@jkotas jkotas reopened this Jul 18, 2019
Copy link
Member

@noahfalk noahfalk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, sorry it took me a while to get to this one

@MichalStrehovsky
Copy link
Member

Thank you!

- So that `MethodDesc::GetNativeCode()` can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
- Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
- Reenabled a couple of default interface method tests under GCStress
- Other small cleanup

Fixes https://github.com/dotnet/coreclr/issues/25690
@MichalStrehovsky
Copy link
Member

@kouvel Can this be merged? There's 3 more issues that are likely the same root cause (it's GCStress crashes in default interface tests, even though we haven't touched default interfaces in many months).

@kouvel
Copy link
Member Author

kouvel commented Aug 19, 2019

Thanks for rerunning the CI, I'll go ahead and merge

@kouvel kouvel merged commit 98bf56a into dotnet:master Aug 19, 2019
@kouvel kouvel deleted the CvFix branch August 19, 2019 18:22
kouvel added a commit to kouvel/coreclr that referenced this pull request Mar 9, 2021
- Partial port of dotnet#25770 to 3.1 (only the main change, excludes unrelated cleanup)
- Use native code slot for default interface methods so that `MethodDesc::GetNativeCode()` can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
- Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
- Reenabled a couple of default interface method tests under GCStress

Fixes https://github.com/dotnet/coreclr/issues/25690
Anipik pushed a commit that referenced this pull request Mar 11, 2021
…8153)

- Partial port of #25770 to 3.1 (only the main change, excludes unrelated cleanup)
- Use native code slot for default interface methods so that `MethodDesc::GetNativeCode()` can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
- Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
- Reenabled a couple of default interface method tests under GCStress

Fixes https://github.com/dotnet/coreclr/issues/25690
echesakov pushed a commit that referenced this pull request Mar 13, 2021
- Partial port of #25770 to 3.1 (only the main change, excludes unrelated cleanup)
- Use native code slot for default interface methods so that `MethodDesc::GetNativeCode()` can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
- Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
- Reenabled a couple of default interface method tests under GCStress

Fixes https://github.com/dotnet/coreclr/issues/25690
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
)

- So that `MethodDesc::GetNativeCode()` can retrieve the current native code entry point (instead of returning null as before), and code versioning can find a matching code version from the code start address
- Interface methods currently require having a precode, so the "method entry point" can't be used to directly store the native code entry point
- Reenabled a couple of default interface method tests under GCStress
- Other small cleanup

Fixes https://github.com/dotnet/coreclr/issues/25690

Commit migrated from dotnet/coreclr@98bf56a
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
4 participants