Signed-off-by: Torge Matthies tmatthies@codeweavers.com --- v3 -> v4: Added freeing of the chore list.
dlls/concrt140/concrt140.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcrt/concurrency.c | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index 6b5ab7a5511..431d6406d37 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -269,7 +269,7 @@ @ stub -arch=win64 ??1_SpinLock@details@Concurrency@@QEAA@XZ @ stub -arch=arm ??1_StructuredTaskCollection@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_StructuredTaskCollection@details@Concurrency@@QEAA@XZ +@ thiscall -arch=win64 ??1_StructuredTaskCollection@details@Concurrency@@QEAA@XZ(ptr) StructuredTaskCollection_dtor @ stub -arch=arm ??1_TaskCollection@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_TaskCollection@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_TaskCollection@details@Concurrency@@QEAA@XZ diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 46e16257b5d..8a5d20036ec 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -291,7 +291,7 @@ @ stub -arch=i386 ??1_SpinLock@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_SpinLock@details@Concurrency@@QEAA@XZ @ stub -arch=i386 ??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_StructuredTaskCollection@details@Concurrency@@QEAA@XZ +@ thiscall -arch=win64 ??1_StructuredTaskCollection@details@Concurrency@@QEAA@XZ(ptr) StructuredTaskCollection_dtor @ stub -arch=arm ??1_TaskCollection@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_TaskCollection@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_TaskCollection@details@Concurrency@@QEAA@XZ diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index 2da39745f93..98baf253adf 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -1782,6 +1782,25 @@ bool __thiscall SpinWait__SpinOnce(SpinWait *this) } }
+#if _MSVCR_VER >= 120 + +/* ??1_StructuredTaskCollection@details@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(StructuredTaskCollection_dtor, 4) +void __thiscall StructuredTaskCollection_dtor(StructuredTaskCollection *this) +{ + StructuredTaskCollectionChoresEntry *entry, *next; + + TRACE("(%p)\n", this); + + for (entry = this->unk_chores; entry; entry = next) + { + next = entry->next; + operator_delete(entry); + } +} + +#endif /* _MSVCR_VER >= 120 */ + #if _MSVCR_VER >= 100
static void CALLBACK StructuredTaskCollection_threadpool_cb_finally(BOOL normal, void *data)