summaryrefslogtreecommitdiff
path: root/src/vm/dllimportcallback.h
diff options
context:
space:
mode:
authorKonstantin Baladurin <k.baladurin@partner.samsung.com>2018-01-12 18:55:10 +0300
committerJan Kotas <jkotas@microsoft.com>2018-01-12 12:40:37 -0800
commitb0a10f69a85404bcc9c377c80dc2950f927f8731 (patch)
tree524d83fc1f7dd6b6379414764a6b8619e583cb46 /src/vm/dllimportcallback.h
parent28839fc0b2dcaf89b7217741291c8c3f578f38a0 (diff)
downloadcoreclr-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.h10
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