Skip to content
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

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

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

@MichalStrehovsky
Copy link
Member

@MichalStrehovsky MichalStrehovsky commented Jul 22, 2019

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

@MichalStrehovsky MichalStrehovsky commented Aug 19, 2019

@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 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
38 checks passed
@kouvel kouvel deleted the CvFix branch Aug 19, 2019
kouvel added a commit to kouvel/coreclr that referenced this issue 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 issue 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
EgorChesakov pushed a commit that referenced this issue 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 issue 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 join this conversation on GitHub. Already have an account? Sign in to comment