diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2016-05-20 10:53:17 -0700 |
---|---|---|
committer | Pat Gavlin <pagavlin@microsoft.com> | 2016-05-20 10:53:52 -0700 |
commit | 6a84a4aa0c08f7db816cdd8eed9e2ecbcc877f52 (patch) | |
tree | 40c57bb10201420b958f13086cb1e7e3416553d0 /src/zap | |
parent | a2728758512f4b13d50fd44f9be43cdb48bd7567 (diff) | |
parent | 3c61cb45c73ec7dd156475f95853abb2a6d74af0 (diff) | |
download | coreclr-6a84a4aa0c08f7db816cdd8eed9e2ecbcc877f52.tar.gz coreclr-6a84a4aa0c08f7db816cdd8eed9e2ecbcc877f52.tar.bz2 coreclr-6a84a4aa0c08f7db816cdd8eed9e2ecbcc877f52.zip |
Merge remote-tracking branch 'upstream/master' into from-tfs
Diffstat (limited to 'src/zap')
-rw-r--r-- | src/zap/zapimport.cpp | 18 | ||||
-rw-r--r-- | src/zap/zapimport.h | 3 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/zap/zapimport.cpp b/src/zap/zapimport.cpp index 323c7dd5cb..c1f8693a2f 100644 --- a/src/zap/zapimport.cpp +++ b/src/zap/zapimport.cpp @@ -1009,13 +1009,13 @@ void ZapImportTable::EncodeField(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_FIELD_ } void ZapImportTable::EncodeMethod(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_METHOD_HANDLE handle, SigBuilder * pSigBuilder, - CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken) + CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken, BOOL fEncodeUsingResolvedTokenSpecStreams) { CORINFO_CLASS_HANDLE clsHandle = GetJitInfo()->getMethodClass(handle); CORINFO_MODULE_HANDLE referencingModule = GetJitInfo()->getClassModule(clsHandle); referencingModule = TryEncodeModule(kind, referencingModule, pSigBuilder); GetCompileInfo()->EncodeMethod(referencingModule, handle, pSigBuilder, this, EncodeModuleHelper, - pResolvedToken, pConstrainedResolvedToken); + pResolvedToken, pConstrainedResolvedToken, fEncodeUsingResolvedTokenSpecStreams); } // ====================================================================================== @@ -1822,7 +1822,19 @@ ZapImport * ZapImportTable::GetDictionaryLookupCell(CORCOMPILE_FIXUP_BLOB_KIND k } break; - // TODO: support for the rest of the dictionary signature kinds + case READYTORUN_FIXUP_MethodHandle: + EncodeMethod(ENCODE_METHOD_HANDLE, pResolvedToken->hMethod, &sigBuilder, pResolvedToken, NULL, TRUE); + break; + + case READYTORUN_FIXUP_MethodEntry: + EncodeMethod(ENCODE_METHOD_ENTRY, pResolvedToken->hMethod, &sigBuilder, pResolvedToken, NULL, TRUE); + break; + + case READYTORUN_FIXUP_VirtualEntry: + EncodeMethod(ENCODE_VIRTUAL_ENTRY, pResolvedToken->hMethod, &sigBuilder, pResolvedToken, NULL, TRUE); + break; + + // TODO: support for the rest of the dictionary signature kinds default: _ASSERTE(!"Invalid R2R fixup kind!"); diff --git a/src/zap/zapimport.h b/src/zap/zapimport.h index 1c6ec03c45..b1a5fbbe95 100644 --- a/src/zap/zapimport.h +++ b/src/zap/zapimport.h @@ -341,7 +341,8 @@ public: void EncodeField(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_FIELD_HANDLE handle, SigBuilder * pSigBuilder, CORINFO_RESOLVED_TOKEN * pResolvedToken = NULL); void EncodeMethod(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_METHOD_HANDLE handle, SigBuilder * pSigBuilder, - CORINFO_RESOLVED_TOKEN * pResolvedToken = NULL, CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken = NULL); + CORINFO_RESOLVED_TOKEN * pResolvedToken = NULL, CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken = NULL, + BOOL fEncodeUsingResolvedTokenSpecStreams = FALSE); // Encode module if the reference is within current version bubble. If not, return a suitable module within current version bubble. CORINFO_MODULE_HANDLE TryEncodeModule(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_MODULE_HANDLE module, SigBuilder * pSigBuilder); |