This repository was archived by the owner on Jan 23, 2023. It is now read-only.
  
  
  
  
    
    
    
      
    
  
  
    
File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -338,6 +338,9 @@ BOOL DictionaryLayout::FindToken(MethodTable*                       pMT,
338338        //  can start using newly added dictionary layout slots on types where the PerInstInfo hasn't expanded yet, and cause runtime failures.
339339        pMT->GetClass ()->SetDictionaryLayout (pNewLayout);
340340
341+         //  Ensure no other thread uses old dictionary pointers
342+         FlushProcessWriteBuffers ();
343+ 
341344        return  TRUE ;
342345#else 
343346        pResult->signature  = pSigBuilder == NULL  ? pSig : CreateSignatureWithSlotData (pSigBuilder, pAllocator, 0 );
@@ -394,6 +397,9 @@ BOOL DictionaryLayout::FindToken(MethodDesc*                        pMD,
394397        //  can start using newly added dictionary layout slots on methods where the PerInstInfo hasn't expanded yet, and cause runtime failures.
395398        pMD->AsInstantiatedMethodDesc ()->IMD_SetDictionaryLayout (pNewLayout);
396399
400+         //  Ensure no other thread uses old dictionary pointers
401+         FlushProcessWriteBuffers ();
402+ 
397403        return  TRUE ;
398404#else 
399405        pResult->signature  = pSigBuilder == NULL  ? pSig : CreateSignatureWithSlotData (pSigBuilder, pAllocator, 0 );
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments