diff options
author | John Chen (CLR) <jochen@microsoft.com> | 2016-04-25 01:55:00 -0700 |
---|---|---|
committer | JohnChen0 <jochen@microsoft.com> | 2016-04-30 22:44:50 -0700 |
commit | 9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5 (patch) | |
tree | 72605919515280930e2f40b6dca7a9521cac3559 /src/vm/compile.cpp | |
parent | ae0b815a0483ebdc861da14d41f3f4c10d3a477a (diff) | |
download | coreclr-9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5.tar.gz coreclr-9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5.tar.bz2 coreclr-9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5.zip |
Support generic methods without generic dictionary
Diffstat (limited to 'src/vm/compile.cpp')
-rw-r--r-- | src/vm/compile.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/vm/compile.cpp b/src/vm/compile.cpp index b17b6a15c6..36bba43c10 100644 --- a/src/vm/compile.cpp +++ b/src/vm/compile.cpp @@ -76,6 +76,8 @@ #include "argdestination.h" +#include "versionresilienthashcode.h" + #ifdef CROSSGEN_COMPILE CompilationDomain * theDomain; #endif @@ -2522,6 +2524,20 @@ BOOL CEECompileInfo::AreAllClassesFullyLoaded(CORINFO_MODULE_HANDLE moduleHandle return ((Module *)moduleHandle)->AreAllClassesFullyLoaded(); } +int CEECompileInfo::GetVersionResilientTypeHashCode(CORINFO_MODULE_HANDLE moduleHandle, mdToken token) +{ + STANDARD_VM_CONTRACT; + + return ::GetVersionResilientTypeHashCode(((Module *)moduleHandle)->GetMDImport(), token); +} + +int CEECompileInfo::GetVersionResilientMethodHashCode(CORINFO_METHOD_HANDLE methodHandle) +{ + STANDARD_VM_CONTRACT; + + return ::GetVersionResilientMethodHashCode(GetMethod(methodHandle)); +} + #endif // FEATURE_READYTORUN_COMPILER BOOL CEECompileInfo::HasCustomAttribute(CORINFO_METHOD_HANDLE method, LPCSTR customAttributeName) @@ -6885,9 +6901,10 @@ CORINFO_METHOD_HANDLE CEEPreloader::LookupMethodDef(mdMethodDef token) token, FALSE); - // READYTORUN: FUTURE: Generics if (IsReadyToRunCompilation() && pMD->HasClassOrMethodInstantiation()) - return NULL; + { + _ASSERTE(IsCompilationProcess() && pMD->GetModule_NoLogging() == GetAppDomain()->ToCompilationDomain()->GetTargetModule()); + } pMD = pMD->FindOrCreateTypicalSharedInstantiation(); |