diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2017-04-07 19:15:14 +0300 |
---|---|---|
committer | dotnet-bot <dotnet-bot@microsoft.com> | 2017-04-07 19:15:14 +0300 |
commit | 2bbc0dce126b38922682fe7f5f46d805029d438f (patch) | |
tree | a3d3e15bf3150ac606b2334bc01ad917aeb7c105 /src/Native/Runtime/TypeManager.h | |
parent | ecd7ae9edb94fe45cc28af6ce5437fbc428a2ae8 (diff) |
ProjectX: Hook up class lib functions with type manager
The class lib functions are already hooked up to code manager. However, there are cases where we look for class lib functions from EEtype, such as GetClasslibException on an eeype. This change attaches the class lib function array to every type manager and sets up a runtime helper to get to the class lib function GetRuntimeException from an EEtype.
[tfs-changeset: 1653592]
Diffstat (limited to 'src/Native/Runtime/TypeManager.h')
-rw-r--r-- | src/Native/Runtime/TypeManager.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Native/Runtime/TypeManager.h b/src/Native/Runtime/TypeManager.h index df095a336..1a5baa216 100644 --- a/src/Native/Runtime/TypeManager.h +++ b/src/Native/Runtime/TypeManager.h @@ -18,15 +18,18 @@ class TypeManager UInt8* m_pStaticsGCDataSection; UInt8* m_pThreadStaticsDataSection; UInt32* m_pTlsIndex; // Pointer to TLS index if this module uses thread statics + void** m_pClasslibFunctions; + UInt32 m_nClasslibFunctions; - TypeManager(HANDLE osModule, ReadyToRunHeader * pHeader); + TypeManager(HANDLE osModule, ReadyToRunHeader * pHeader, void** pClasslibFunctions, UInt32 nClasslibFunctions); public: - static TypeManager * Create(HANDLE osModule, void * pModuleHeader); + static TypeManager * Create(HANDLE osModule, void * pModuleHeader, void** pClasslibFunctions, UInt32 nClasslibFunctions); void * GetModuleSection(ReadyToRunSectionType sectionId, int * length); DispatchMap ** GetDispatchMapLookupTable(); void EnumStaticGCRefs(void * pfnCallback, void * pvCallbackData); HANDLE GetOsModuleHandle(); + void* GetClasslibFunction(ClasslibFunctionId functionId); private: |