summaryrefslogtreecommitdiff
path: root/src/vm
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm')
-rw-r--r--src/vm/prestub.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vm/prestub.cpp b/src/vm/prestub.cpp
index 2bedb83571..aeb9c3063a 100644
--- a/src/vm/prestub.cpp
+++ b/src/vm/prestub.cpp
@@ -780,15 +780,19 @@ Stub * CreateInstantiatingILStub(MethodDesc* pTargetMD, void* pHiddenArg)
CONTRACT_END;
SigTypeContext typeContext;
+ MethodTable* pStubMT;
if (pTargetMD->HasMethodInstantiation())
{
// The pHiddenArg shall be a MethodDesc*
- SigTypeContext::InitTypeContext(static_cast<MethodDesc *>(pHiddenArg), &typeContext);
+ MethodDesc* pMD = static_cast<MethodDesc *>(pHiddenArg);
+ SigTypeContext::InitTypeContext(pMD, &typeContext);
+ pStubMT = pMD->GetMethodTable();
}
else
{
// The pHiddenArg shall be a MethodTable*
SigTypeContext::InitTypeContext(TypeHandle::FromPtr(pHiddenArg), &typeContext);
+ pStubMT = static_cast<MethodTable *>(pHiddenArg);
}
MetaSig msig(pTargetMD);
@@ -837,7 +841,7 @@ Stub * CreateInstantiatingILStub(MethodDesc* pTargetMD, void* pHiddenArg)
pTargetMD->GetSig(&pSig,&cbSig);
PTR_Module pLoaderModule = pTargetMD->GetLoaderModule();
MethodDesc * pStubMD = ILStubCache::CreateAndLinkNewILStubMethodDesc(pTargetMD->GetLoaderAllocator(),
- pLoaderModule->GetILStubCache()->GetOrCreateStubMethodTable(pLoaderModule),
+ pStubMT,
ILSTUB_INSTANTIATINGSTUB,
pTargetMD->GetModule(),
pSig, cbSig,