diff options
author | Jeremy Koritzinsky <jkoritzinsky@gmail.com> | 2018-11-10 16:07:33 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-10 16:07:33 -0800 |
commit | 463ba889b0c010eb9c6f9807eaf0ab4ab5624450 (patch) | |
tree | dbddeb8d3539468ce4af86c9a408f91c41764e67 /src/vm/dllimport.cpp | |
parent | 845fc293bef24024f779e05ebc33971bea2728d3 (diff) | |
download | coreclr-463ba889b0c010eb9c6f9807eaf0ab4ab5624450.tar.gz coreclr-463ba889b0c010eb9c6f9807eaf0ab4ab5624450.tar.bz2 coreclr-463ba889b0c010eb9c6f9807eaf0ab4ab5624450.zip |
Keep delegate fields alive across a full native call (#20896)
* Repurpose CleanupWorkList to also preserve delegate references in structs across the full native call.
* Change CleanupWorkListElement to abstract base class instead of interface.
* Make CleanupWorkList a singlely linked list.
* PR Feedback.
* Remove CleanupWorkList and make CleanupWorkListElement be able to represent the full list.
* Add back throw in SafeHandle field marshalling.
* PR feedback.
Diffstat (limited to 'src/vm/dllimport.cpp')
-rw-r--r-- | src/vm/dllimport.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm/dllimport.cpp b/src/vm/dllimport.cpp index 6fd4366624..acb356a42b 100644 --- a/src/vm/dllimport.cpp +++ b/src/vm/dllimport.cpp @@ -2167,7 +2167,7 @@ void NDirectStubLinker::NeedsCleanupList() SetCleanupNeeded(); // we setup a new local that will hold the cleanup work list - LocalDesc desc(MscorlibBinder::GetClass(CLASS__CLEANUP_WORK_LIST)); + LocalDesc desc(MscorlibBinder::GetClass(CLASS__CLEANUP_WORK_LIST_ELEMENT)); m_dwCleanupWorkListLocalNum = NewLocal(desc); } } |