@@ -455,19 +455,10 @@ class UnlockedLoaderHeap : public UnlockedLoaderHeapBase
455455 static void WeGotAFaultNowWhat (UnlockedLoaderHeap *pHeap);
456456};
457457
458- struct InterleavedLoaderHeapConfig
459- {
460- uint32_t StubSize;
461- void * Template;
462- void (*CodePageGenerator)(uint8_t * pageBase, uint8_t * pageBaseRX, size_t size);
463- };
464-
465- void InitializeLoaderHeapConfig (InterleavedLoaderHeapConfig *pConfig, size_t stubSize, void * templateInImage, void (*codePageGenerator)(uint8_t * pageBase, uint8_t * pageBaseRX, size_t size));
466-
467458// ===============================================================================
468459// This is the base class for InterleavedLoaderHeap It's used as a simple
469460// allocator for stubs in a scheme where each stub is a small fixed size, and is paired
470- // with memory which is GetStubCodePageSize () bytes away. In addition there is an
461+ // with memory which is GetOSStubPageSize () bytes away. In addition there is an
471462// ability to free is via a "backout" mechanism that is not considered to have good performance.
472463//
473464// ===============================================================================
@@ -501,13 +492,16 @@ class UnlockedInterleavedLoaderHeap : public UnlockedLoaderHeapBase
501492
502493 InterleavedStubFreeListNode *m_pFreeListHead;
503494
504- const InterleavedLoaderHeapConfig *m_pConfig;
495+ public:
496+ public:
497+ void (*m_codePageGenerator)(BYTE* pageBase, BYTE* pageBaseRX, SIZE_T size);
505498
506499#ifndef DACCESS_COMPILE
507500protected:
508501 UnlockedInterleavedLoaderHeap (
509502 RangeList *pRangeList,
510- const InterleavedLoaderHeapConfig *pConfig);
503+ void (*codePageGenerator)(BYTE* pageBase, BYTE* pageBaseRX, SIZE_T size),
504+ DWORD dwGranularity);
511505
512506 virtual ~UnlockedInterleavedLoaderHeap ();
513507#endif
@@ -1045,11 +1039,13 @@ class InterleavedLoaderHeap : public UnlockedInterleavedLoaderHeap
10451039public:
10461040 InterleavedLoaderHeap (RangeList *pRangeList,
10471041 BOOL fUnlocked ,
1048- const InterleavedLoaderHeapConfig *pConfig
1042+ void (*codePageGenerator)(BYTE* pageBase, BYTE* pageBaseRX, SIZE_T size),
1043+ DWORD dwGranularity
10491044 )
10501045 : UnlockedInterleavedLoaderHeap(
10511046 pRangeList,
1052- pConfig),
1047+ codePageGenerator,
1048+ dwGranularity),
10531049 m_CriticalSection(fUnlocked ? NULL : CreateLoaderHeapLock())
10541050 {
10551051 WRAPPER_NO_CONTRACT;
0 commit comments