@@ -422,7 +422,7 @@ void UnwindInfoTable::AddToUnwindInfoTable(UnwindInfoTable** unwindInfoPtr, PT_R
422
422
{
423
423
// This cast is justified because only EEJitManager's have the code type above.
424
424
EEJitManager* pJitMgr = (EEJitManager*)(pRS->_pjit );
425
- CodeHeader * pHeader = dac_cast<PTR_CodeHeader>( pJitMgr->GetCodeHeaderFromStartAddress (entryPoint) );
425
+ CodeHeader * pHeader = pJitMgr->GetCodeHeaderFromStartAddress (entryPoint);
426
426
for (ULONG i = 0 ; i < pHeader->GetNumberOfUnwindInfos (); i++)
427
427
RemoveFromUnwindInfoTable (&pRS->_pUnwindInfoTable , pRS->_range .RangeStart (), pRS->_range .RangeStart () + pHeader->GetUnwindInfo (i)->BeginAddress );
428
428
}
@@ -461,7 +461,7 @@ void UnwindInfoTable::AddToUnwindInfoTable(UnwindInfoTable** unwindInfoPtr, PT_R
461
461
{
462
462
// This cast is justified because only EEJitManager's have the code type above.
463
463
EEJitManager* pJitMgr = (EEJitManager*)(pRS->_pjit );
464
- CodeHeader * pHeader = dac_cast<PTR_CodeHeader>( pJitMgr->GetCodeHeaderFromStartAddress (methodEntry) );
464
+ CodeHeader * pHeader = pJitMgr->GetCodeHeaderFromStartAddress (methodEntry);
465
465
int unwindInfoCount = pHeader->GetNumberOfUnwindInfos ();
466
466
for (int i = 0 ; i < unwindInfoCount; i++)
467
467
AddToUnwindInfoTable (&pRS->_pUnwindInfoTable , pHeader->GetUnwindInfo (i), pRS->_range .RangeStart (), pRS->_range .RangeEndOpen ());
@@ -519,8 +519,7 @@ void UnwindInfoTable::AddToUnwindInfoTable(UnwindInfoTable** unwindInfoPtr, PT_R
519
519
Setters of EECodeGenManager::m_CodeHeapCritSec
520
520
-----------------------------------------------
521
521
allocCode
522
- allocGCInfo
523
- allocEHInfo
522
+ allocFromJitMetaHeap
524
523
allocJumpStubBlock
525
524
ResolveEHClause
526
525
RemoveJitData
@@ -2916,7 +2915,6 @@ void EECodeGenManager::allocCode(MethodDesc* pMD, size_t blockSize, size_t reser
2916
2915
#endif
2917
2916
_ASSERTE (reserveForJumpStubs == 0 );
2918
2917
requestInfo.SetInterpreted ();
2919
- requestInfo.SetDynamicDomain ();
2920
2918
realHeaderSize = sizeof (InterpreterRealCodeHeader);
2921
2919
}
2922
2920
else
@@ -3198,33 +3196,6 @@ LoaderHeap *EECodeGenManager::GetJitMetaHeap(MethodDesc *pMD)
3198
3196
return pAllocator->GetLowFrequencyHeap ();
3199
3197
}
3200
3198
3201
- void * EECodeGenManager::allocEHInfoRaw (MethodDesc* pMD, DWORD blockSize, size_t * pAllocationSize)
3202
- {
3203
- CONTRACTL {
3204
- THROWS;
3205
- GC_NOTRIGGER;
3206
- } CONTRACTL_END;
3207
-
3208
- void * mem = NULL ;
3209
-
3210
- // sadly for light code gen I need the check in here. We should change GetJitMetaHeap
3211
- if (pMD->IsLCGMethod ())
3212
- {
3213
- CrstHolder ch (&m_CodeHeapCritSec);
3214
- mem = (void *)pMD->AsDynamicMethodDesc ()->GetResolver ()->GetJitMetaHeap ()->New (blockSize);
3215
- }
3216
- else
3217
- {
3218
- mem = (void *)GetJitMetaHeap (pMD)->AllocMem (S_SIZE_T (blockSize));
3219
- }
3220
- _ASSERTE (mem); // AllocMem throws if there's not enough memory
3221
-
3222
- * pAllocationSize = blockSize; // Store the allocation size so we can backout later.
3223
-
3224
- return (mem);
3225
- }
3226
-
3227
-
3228
3199
JumpStubBlockHeader * EEJitManager::allocJumpStubBlock (MethodDesc* pMD, DWORD numJumps,
3229
3200
BYTE * loAddr, BYTE * hiAddr,
3230
3201
LoaderAllocator *pLoaderAllocator,
@@ -3326,53 +3297,27 @@ void * EEJitManager::allocCodeFragmentBlock(size_t blockSize, unsigned alignment
3326
3297
RETURN ((void *)mem);
3327
3298
}
3328
3299
3329
- template <typename TCodeHeader>
3330
- BYTE* EECodeGenManager::allocGCInfo (TCodeHeader* pCodeHeader, DWORD blockSize, size_t * pAllocationSize)
3300
+ BYTE* EECodeGenManager::allocFromJitMetaHeap (MethodDesc* pMD, DWORD blockSize, size_t * pAllocationSize)
3331
3301
{
3332
3302
CONTRACTL {
3333
3303
THROWS;
3334
3304
GC_NOTRIGGER;
3335
3305
} CONTRACTL_END;
3336
3306
3337
- MethodDesc* pMD = pCodeHeader->GetMethodDesc ();
3338
- // sadly for light code gen I need the check in here. We should change GetJitMetaHeap
3307
+ BYTE *pMem = NULL ;
3339
3308
if (pMD->IsLCGMethod ())
3340
3309
{
3341
3310
CrstHolder ch (&m_CodeHeapCritSec);
3342
- pCodeHeader-> SetGCInfo (( BYTE*)(void *)pMD->AsDynamicMethodDesc ()->GetResolver ()->GetJitMetaHeap ()->New (blockSize) );
3311
+ pMem = ( BYTE*)(void *)pMD->AsDynamicMethodDesc ()->GetResolver ()->GetJitMetaHeap ()->New (blockSize);
3343
3312
}
3344
3313
else
3345
3314
{
3346
- pCodeHeader-> SetGCInfo (( BYTE*) (void *)GetJitMetaHeap (pMD)->AllocMem (S_SIZE_T (blockSize) ));
3315
+ pMem = ( BYTE*) (void *)GetJitMetaHeap (pMD)->AllocMem (S_SIZE_T (blockSize));
3347
3316
}
3348
- _ASSERTE (pCodeHeader->GetGCInfo ()); // AllocMem throws if there's not enough memory
3349
-
3350
- * pAllocationSize = blockSize; // Store the allocation size so we can backout later.
3351
-
3352
- return (pCodeHeader->GetGCInfo ());
3353
- }
3354
-
3355
- template <typename TCodeHeader>
3356
- EE_ILEXCEPTION* EECodeGenManager::allocEHInfo (TCodeHeader* pCodeHeader, unsigned numClauses, size_t * pAllocationSize)
3357
- {
3358
- CONTRACTL {
3359
- THROWS;
3360
- GC_NOTRIGGER;
3361
- } CONTRACTL_END;
3362
-
3363
- // Note - pCodeHeader->phdrJitEHInfo - sizeof(size_t) contains the number of EH clauses
3364
-
3365
- DWORD temp = EE_ILEXCEPTION::Size (numClauses);
3366
- DWORD blockSize = 0 ;
3367
- if (!ClrSafeInt<DWORD>::addition (temp, sizeof (size_t ), blockSize))
3368
- COMPlusThrowOM ();
3369
3317
3370
- BYTE *EHInfo = (BYTE*) allocEHInfoRaw (pCodeHeader-> GetMethodDesc (), blockSize, pAllocationSize);
3318
+ *pAllocationSize = blockSize; // Store the allocation size so we can backout later.
3371
3319
3372
- pCodeHeader->SetEHInfo ((EE_ILEXCEPTION*) (EHInfo + sizeof (size_t )));
3373
- pCodeHeader->GetEHInfo ()->Init (numClauses);
3374
- *((size_t *)EHInfo) = numClauses;
3375
- return (pCodeHeader->GetEHInfo ());
3320
+ return pMem;
3376
3321
}
3377
3322
3378
3323
template <typename TCodeHeader>
@@ -3469,21 +3414,10 @@ void EECodeGenManager::RemoveJitData(TCodeHeader * pCHdr, size_t GCinfo_len, siz
3469
3414
// being in the header file. The bodies call methods of multiple data types that cannot be reasonably defined
3470
3415
// before the codeman.h is included.
3471
3416
3472
- template
3473
- BYTE* EECodeGenManager::allocGCInfo<CodeHeader>(CodeHeader* pCodeHeader, DWORD blockSize, size_t * pAllocationSize);
3474
-
3475
- template
3476
- EE_ILEXCEPTION* EECodeGenManager::allocEHInfo<CodeHeader>(CodeHeader* pCodeHeader, unsigned numClauses, size_t * pAllocationSize);
3477
-
3478
3417
template
3479
3418
void EECodeGenManager::RemoveJitData<CodeHeader>(CodeHeader * pCHdr, size_t GCinfo_len, size_t EHinfo_len);
3480
3419
3481
3420
#ifdef FEATURE_INTERPRETER
3482
- template
3483
- BYTE* EECodeGenManager::allocGCInfo<InterpreterCodeHeader>(InterpreterCodeHeader* pCodeHeader, DWORD blockSize, size_t * pAllocationSize);
3484
-
3485
- template
3486
- EE_ILEXCEPTION* EECodeGenManager::allocEHInfo<InterpreterCodeHeader>(InterpreterCodeHeader* pCodeHeader, unsigned numClauses, size_t * pAllocationSize);
3487
3421
3488
3422
template
3489
3423
void EECodeGenManager::RemoveJitData<InterpreterCodeHeader>(InterpreterCodeHeader * pCHdr, size_t GCinfo_len, size_t EHinfo_len);
0 commit comments