summaryrefslogtreecommitdiff
path: root/src/zap
diff options
context:
space:
mode:
authordotnet-bot <dotnet-bot@microsoft.com>2016-05-20 10:53:17 -0700
committerPat Gavlin <pagavlin@microsoft.com>2016-05-20 10:53:52 -0700
commit6a84a4aa0c08f7db816cdd8eed9e2ecbcc877f52 (patch)
tree40c57bb10201420b958f13086cb1e7e3416553d0 /src/zap
parenta2728758512f4b13d50fd44f9be43cdb48bd7567 (diff)
parent3c61cb45c73ec7dd156475f95853abb2a6d74af0 (diff)
downloadcoreclr-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.cpp18
-rw-r--r--src/zap/zapimport.h3
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);