@@ -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