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

[hot_reload] Add support for row modifications; CustomAttribute updates #55445

Merged
merged 7 commits into from
Jul 12, 2021

Commits on Jul 9, 2021

  1. [hot_reload] Add test for updating custom attribute ctor values

    Just changing the arguments of a custom attribute constructor should generate
    an update to the CustomAttributes table with the same parent and .ctor.  That
    kind of change should be allowed by Mono and CoreCLR
    lambdageek committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    207c2e4 View commit details
    Browse the repository at this point in the history
  2. [hot_reload] Allow custom attribute row modifications if Parent and Type

    unchanged.
    
    Allows updates to the constructor arguments (or property values)
    lambdageek committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    4a643f1 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2021

  1. [hot_reload] Implement table lookup of modified rows

    Add a bool array on the base image to keep track of whether each table had any
    row modifications (as opposed to row additions) in any generation.
    
    If there was a modification, take the slow path in mono_image_effective_table
    even if the index we're looking at is in the base image.
    
    Update hot_reload_effective_table_slow so that if there was a modified row, we
    look at all the deltas to see if there's an even later update to that
    row.  (When there are only additions, keep same behavior as before - only look
    as far as the generation that added the row we wanted to find).
    
    Also refine the assertion in hot_reload_relative_delta_index to properly
    account for EnCMap entries that correspond to modifications - in that case we
    might stop searching a metadata delta before we hit the end of the table if the
    EnCmap entries start pointing to rows that are past the one we wanted to look
    up.
    lambdageek committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    8a437bd View commit details
    Browse the repository at this point in the history
  2. Update the CustomAttributeUpdates test to check attribute value

    Check that we get the updated custom attribute string property value.
    lambdageek committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    e2dc8fb View commit details
    Browse the repository at this point in the history
  3. Re-enable nullability for hot reload tests

    Mono can now deal with the custom attributes modifications that Roslyn emits
    lambdageek committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    01f6e69 View commit details
    Browse the repository at this point in the history
  4. fixup copy/paste mistake

    lambdageek committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    3bbf510 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    928ac23 View commit details
    Browse the repository at this point in the history