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

[mbr] Add support for editing property getters/setters #51011

Merged
4 commits merged into from
Apr 14, 2021

Conversation

lambdageek
Copy link
Member

A getter/setter change comes in as a modification of the Property table and as several new rows in MethodSemantics. So in pass1 just verify that MethodSemantics only has getter/setter rows and that they point at existing methods.

Two other general MBR changes:

  1. refactor the code to use switch statements instead of if/else
  2. Process the EnCMap before pass1 over the EnCLog - this allows us to do relative row lookups in pass1 (ie find the row in a delta's tables of one of the rows mentioned in the EnCLog)

Contributes to #44806

Note that modifications of getter or setter bodies add new rows to the
MethodSemantics table that point to an existing method def (with an updated IL)
and to an existing row in the property table.  So there is nothing to do.
…ng methods.

We only support modifications of getters/setters, not adding a new getter or
setter where there wasn't one previously.

(Adding new methods in general fails right now)
@ghost
Copy link

ghost commented Apr 9, 2021

Tagging subscribers to this area: @CoffeeFlux
See info in area-owners.md if you want to be subscribed.

Issue Details

A getter/setter change comes in as a modification of the Property table and as several new rows in MethodSemantics. So in pass1 just verify that MethodSemantics only has getter/setter rows and that they point at existing methods.

Two other general MBR changes:

  1. refactor the code to use switch statements instead of if/else
  2. Process the EnCMap before pass1 over the EnCLog - this allows us to do relative row lookups in pass1 (ie find the row in a delta's tables of one of the rows mentioned in the EnCLog)

Contributes to #44806

Author: lambdageek
Assignees: -
Labels:

area-VM-meta-mono

Milestone: -

src/mono/mono/metadata/metadata-update.c Outdated Show resolved Hide resolved
src/mono/mono/metadata/metadata-update.c Outdated Show resolved Hide resolved
@ghost
Copy link

ghost commented Apr 14, 2021

Hello @lambdageek!

Because this pull request has the auto-merge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

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 (@msftbot) and give me an instruction to get started! Learn more here.

@ghost ghost merged commit aede50d into dotnet:main Apr 14, 2021
@lambdageek lambdageek mentioned this pull request May 4, 2021
51 tasks
@ghost ghost locked as resolved and limited conversation to collaborators May 14, 2021
@karelz karelz added this to the 6.0.0 milestone May 20, 2021
This pull request was closed.
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.

3 participants