diff options
author | Konstantin Baladurin <k.baladurin@partner.samsung.com> | 2018-01-12 18:55:10 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2018-01-12 12:40:37 -0800 |
commit | b0a10f69a85404bcc9c377c80dc2950f927f8731 (patch) | |
tree | 524d83fc1f7dd6b6379414764a6b8619e583cb46 /src/vm/dllimportcallback.h | |
parent | 28839fc0b2dcaf89b7217741291c8c3f578f38a0 (diff) | |
download | coreclr-b0a10f69a85404bcc9c377c80dc2950f927f8731.tar.gz coreclr-b0a10f69a85404bcc9c377c80dc2950f927f8731.tar.bz2 coreclr-b0a10f69a85404bcc9c377c80dc2950f927f8731.zip |
UMEntryThunk: store freed thunks into FIFO free list
Use free list to delay reusing deleted thunks. It improves
collected delegate calls diagnostic.
Diffstat (limited to 'src/vm/dllimportcallback.h')
-rw-r--r-- | src/vm/dllimportcallback.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/vm/dllimportcallback.h b/src/vm/dllimportcallback.h index 5838e49566..d820a766bf 100644 --- a/src/vm/dllimportcallback.h +++ b/src/vm/dllimportcallback.h @@ -250,6 +250,7 @@ class UMEntryThunk { friend class CheckAsmOffsets; friend class NDirectStubLinker; + friend class UMEntryThunkFreeList; private: #ifdef _DEBUG @@ -526,8 +527,13 @@ private: // Field is NULL for a static method. OBJECTHANDLE m_pObjectHandle; - // Pointer to the shared structure containing everything else - PTR_UMThunkMarshInfo m_pUMThunkMarshInfo; + union + { + // Pointer to the shared structure containing everything else + PTR_UMThunkMarshInfo m_pUMThunkMarshInfo; + // Pointer to the next UMEntryThunk in the free list. Used when it is freed. + UMEntryThunk *m_pNextFreeThunk; + }; ADID m_dwDomainId; // appdomain of module (cached for fast access) #ifdef _DEBUG |