@@ -407,19 +407,9 @@ class ILStubState : public StubState
407407 SigBuilder sigBuilder;
408408
409409 {
410- if (pStubMD->IsNoMetadata () && pStubMD->AsDynamicMethodDesc ()->HasFlags (DynamicMethodDesc::FlagIndependentSig))
411- {
412- // We already have a module-independent signature, but it is based on the current resolver in the stub method desc.
413- // We need to convert it based on our token lookup map.
414- SigPointer sigPtr (pStubMD->GetSig ());
415- sigPtr.ConvertToInternalSignature (pStubMD->AsDynamicMethodDesc ()->GetResolver (), pStubMD->GetModule (), NULL , &sigBuilder, GetTokenLookupMap ());
416- }
417- else
418- {
419- // Convert to a module independent signature
420- SigPointer sigPtr (pStubMD->GetSig ());
421- sigPtr.ConvertToInternalSignature (pStubMD->GetModule (), NULL , &sigBuilder, GetTokenLookupMap ());
422- }
410+ // Convert to a module independent signature
411+ SigPointer sigPtr (pStubMD->GetSig ());
412+ sigPtr.ConvertToInternalSignature (pStubMD->GetModule (), NULL , &sigBuilder, /* bSkipCustomModifier */ FALSE );
423413 }
424414
425415 //
@@ -440,7 +430,6 @@ class ILStubState : public StubState
440430 memcpyNoGCRefs ((void *)pNewSig, GetStubTargetMethodSig (), cbNewSig);
441431
442432 pStubMD->AsDynamicMethodDesc ()->SetStoredMethodSig (pNewSig, cbNewSig);
443- pStubMD->AsDynamicMethodDesc ()->SetFlags (DynamicMethodDesc::FlagIndependentSig);
444433
445434 SigPointer sigPtr (pNewSig, cbNewSig);
446435 uint32_t callConvInfo;
@@ -480,20 +469,8 @@ class ILStubState : public StubState
480469 {
481470 SigBuilder sigBuilder;
482471 _ASSERTE (pStubMD->IsNoMetadata ());
483- DynamicMethodDesc* pDMD = pStubMD->AsDynamicMethodDesc ();
484- if (pDMD->HasFlags (DynamicMethodDesc::FlagIndependentSig))
485- {
486- // We already have a module-independent signature, but it is based on the current resolver in the stub method desc.
487- // We need to convert it based on our token lookup map.
488- SigPointer sigPtr (pStubMD->GetSig ());
489- sigPtr.ConvertToInternalSignature (pDMD->GetResolver (), pStubMD->GetModule (), NULL , &sigBuilder, GetTokenLookupMap ());
490- }
491- else
492- {
493- SigPointer sigPtr (pStubMD->GetSig ());
494- sigPtr.ConvertToInternalSignature (pStubMD->GetModule (), NULL , &sigBuilder, GetTokenLookupMap ());
495- }
496-
472+ SigPointer sigPtr (pStubMD->GetSig ());
473+ sigPtr.ConvertToInternalSignature (pStubMD->GetModule (), NULL , &sigBuilder, /* bSkipCustomModifier */ FALSE );
497474
498475 //
499476 // make a domain-local copy of the sig so that this state can outlive the
@@ -505,8 +482,7 @@ class ILStubState : public StubState
505482
506483 memcpyNoGCRefs ((void *)pNewSig, pNewSigBuffer, cbNewSig);
507484
508- pDMD->SetStoredMethodSig (pNewSig, cbNewSig);
509- pDMD->SetFlags (DynamicMethodDesc::FlagIndependentSig);
485+ pStubMD->AsDynamicMethodDesc ()->SetStoredMethodSig (pNewSig, cbNewSig);
510486 }
511487
512488 void EmitInvokeTarget (MethodDesc *pStubMD)
@@ -4022,7 +3998,6 @@ namespace
40223998 DWORD m_StubFlags;
40233999
40244000 INT32 m_iLCIDArg;
4025- INT32 m_tokenMapHash;
40264001 INT32 m_nParams;
40274002 BYTE m_rgbSigAndParamData[1 ];
40284003 // (dwParamAttr, cbNativeType) // length: number of parameters
@@ -4078,11 +4053,9 @@ namespace
40784053
40794054 // note that ConvertToInternalSignature also resolves generics so different instantiations will get different
40804055 // hash blobs for methods that have generic parameters in their signature
4081- // The signature may have custom modifiers, so provide a token lookup map to resolve them.
4082- // We'll include a hash of the token lookup map in the hash blob.
4083- TokenLookupMap tokenLookupMap;
4056+ // The signature may have custom modifiers that influence behavior, so don't skip them
40844057 SigBuilder sigBuilder;
4085- sigPtr.ConvertToInternalSignature (pParams->m_pModule , pParams->m_pTypeContext , &sigBuilder, &tokenLookupMap );
4058+ sigPtr.ConvertToInternalSignature (pParams->m_pModule , pParams->m_pTypeContext , &sigBuilder, /* bSkipCustomModifier */ FALSE );
40864059
40874060 DWORD cbSig;
40884061 PVOID pSig = sigBuilder.GetSignature (&cbSig);
@@ -4117,7 +4090,6 @@ namespace
41174090 pBlob->m_nlFlags = static_cast <BYTE>(pParams->m_nlFlags & ~nlfNoMangle); // this flag does not affect the stub
41184091 pBlob->m_iLCIDArg = pParams->m_iLCIDArg ;
41194092
4120- pBlob->m_tokenMapHash = tokenLookupMap.GetHashValue ();
41214093 pBlob->m_StubFlags = pParams->m_dwStubFlags ;
41224094 pBlob->m_nParams = pParams->m_nParamTokens ;
41234095
0 commit comments