Skip to content

Use static sealed vtable for dynamically created types#79332

Merged
MichalStrehovsky merged 1 commit intodotnet:mainfrom
MichalStrehovsky:dynsld
Dec 7, 2022
Merged

Use static sealed vtable for dynamically created types#79332
MichalStrehovsky merged 1 commit intodotnet:mainfrom
MichalStrehovsky:dynsld

Conversation

@MichalStrehovsky
Copy link
Copy Markdown
Member

The sealed vtable is identical for all canonically equivalent types. We had a to make a copy because in the presence of universal shared generics, new sealed vtables could be created for dynamic types and those need to use pointer-sized slots (the slots are relative pointers in the static case and have been since Redhawk times).

Cc @dotnet/ilc-contrib

The sealed vtable is identical for all canonically equivalent types. We had a to make a copy because in the presence of universal shared generics, new sealed vtables could be created for dynamic types and those need to use pointer-sized slots (the slots are relative pointers in the static case and have been since Redhawk times).
@ghost
Copy link
Copy Markdown

ghost commented Dec 7, 2022

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

Issue Details

The sealed vtable is identical for all canonically equivalent types. We had a to make a copy because in the presence of universal shared generics, new sealed vtables could be created for dynamic types and those need to use pointer-sized slots (the slots are relative pointers in the static case and have been since Redhawk times).

Cc @dotnet/ilc-contrib

Author: MichalStrehovsky
Assignees: -
Labels:

area-NativeAOT-coreclr

Milestone: -

@MichalStrehovsky
Copy link
Copy Markdown
Member Author

The test have a red cross and build analysis says they deadlettered, but manually opening the log says they succeeded.

Filed dotnet/arcade#11872. Merging.

@MichalStrehovsky MichalStrehovsky merged commit 9b29f96 into dotnet:main Dec 7, 2022
@MichalStrehovsky MichalStrehovsky deleted the dynsld branch December 7, 2022 21:54
@ghost ghost locked as resolved and limited conversation to collaborators Jan 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants