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

Improve the hashtable for EEClassHash #94825

Merged
merged 15 commits into from
Jan 4, 2024

Commits on Nov 16, 2023

  1. Fixup EEClassHash to support a hash function that includes enclosing …

    …class
    
    - Move namespace/name splitting to the Type.GetType code paths
    - Move exported type handling into the normal PopulateAvailableClass flow
    - Remove unnecessary work done to detect typedef name duplicates. We don't attempt to protect against invaild assemblies anymore
    - Unify path for insertion between ExportedType and TypeDef records, also unify the path for nested vs non-nested
    - Fix logic which implements inserts into the case insensitive table when dynamically adding entries to the ExportedType table (Previously it didn't work)
    - Update the ECMA 335 augments to capture the requirement that nested ExportedTypes must have a higher RID than the enclosing ExportedType
      - This requirement has actually always existed since .NET 1.0, but was never recorded
    davidwrighton committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    7e94553 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e1790ea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5b1b6f6 View commit details
    Browse the repository at this point in the history
  4. Remove use of FindTypeDef from its only common use pattern. This api …

    …is a linear scan of the entire typedef table, and we already have the right hash to make this cheap
    davidwrighton committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    f08041b View commit details
    Browse the repository at this point in the history
  5. Remove extra hash field we really didn't need on EEClassHashEntry

    - Also make the code more DAC correct (probably not completely correct, but this logic does not appear to actually be used within the DAC)
    davidwrighton committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    a97426e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ff60cb9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    93723fc View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. Configuration menu
    Copy the full SHA
    14af763 View commit details
    Browse the repository at this point in the history
  2. Spelling fix

    davidwrighton committed Nov 27, 2023
    Configuration menu
    Copy the full SHA
    81228fe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    64e1282 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2023

  1. Code review feedback

    davidwrighton committed Nov 28, 2023
    Configuration menu
    Copy the full SHA
    6ceb5d0 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2023

  1. Fix oops

    davidwrighton committed Nov 30, 2023
    Configuration menu
    Copy the full SHA
    551c8e9 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2023

  1. Fix code review nits

    davidwrighton committed Dec 19, 2023
    Configuration menu
    Copy the full SHA
    67af66d View commit details
    Browse the repository at this point in the history
  2. Fix oops

    davidwrighton committed Dec 19, 2023
    Configuration menu
    Copy the full SHA
    3dc1e0a View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2024

  1. Configuration menu
    Copy the full SHA
    a41aa8c View commit details
    Browse the repository at this point in the history