summaryrefslogtreecommitdiff
path: root/src/vm/compile.cpp
diff options
context:
space:
mode:
authorJohn Chen (CLR) <jochen@microsoft.com>2016-04-25 01:55:00 -0700
committerJohnChen0 <jochen@microsoft.com>2016-04-30 22:44:50 -0700
commit9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5 (patch)
tree72605919515280930e2f40b6dca7a9521cac3559 /src/vm/compile.cpp
parentae0b815a0483ebdc861da14d41f3f4c10d3a477a (diff)
downloadcoreclr-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.cpp21
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();