Fix inline tracking (#25062)
authorJan Vorlicek <janvorli@microsoft.com>
Tue, 11 Jun 2019 00:22:13 +0000 (02:22 +0200)
committerGitHub <noreply@github.com>
Tue, 11 Jun 2019 00:22:13 +0000 (02:22 +0200)
commita7b7af37dd9e56f94016aed9d9eaf5f857a6d722
treedf900cf178ff65a8bd66ee895596edefa6bc6306
parenta64fd279a830a91e2e687d1456ba742823176e63
Fix inline tracking (#25062)

Inline tracking didn't correctly place the right key into the
inline tracking map for generics. The logic places the instantiated
methoddesc into the tracking map, and then attempts to find it by
looking up the uninstantiated form. This would generally be a silent
failure, but in unloadable assembly testing we have an assert that the
CrossLoaderAllocatorHash holds as keys items from a matching
LoaderAllocator.

This issue also results in an assert `key->GetLoaderAllocator() ==
m_pLoaderAllocator` in CrossLoaderAllocatorHash when the code is
running inside of a collectible AssemblyLoadContext.
src/vm/inlinetracking.cpp