[PATCH v4 3/3] msvcr120: Implement _StructuredTaskCollection::_StructuredTaskCollection_dtor.

Torge Matthies tmatthies at codeweavers.com
Mon Apr 11 09:30:08 CDT 2022


Signed-off-by: Torge Matthies <tmatthies at 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 at details@Concurrency@@QEAA at XZ
 @ stub -arch=arm ??1_StructuredTaskCollection at details@Concurrency@@QAA at XZ
 @ stub -arch=i386 ??1_StructuredTaskCollection at details@Concurrency@@QAE at XZ
-@ stub -arch=win64 ??1_StructuredTaskCollection at details@Concurrency@@QEAA at XZ
+@ thiscall -arch=win64 ??1_StructuredTaskCollection at details@Concurrency@@QEAA at XZ(ptr) StructuredTaskCollection_dtor
 @ stub -arch=arm ??1_TaskCollection at details@Concurrency@@QAA at XZ
 @ stub -arch=i386 ??1_TaskCollection at details@Concurrency@@QAE at XZ
 @ stub -arch=win64 ??1_TaskCollection at details@Concurrency@@QEAA at 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 at details@Concurrency@@QAE at XZ
 @ stub -arch=win64 ??1_SpinLock at details@Concurrency@@QEAA at XZ
 @ stub -arch=i386 ??1_StructuredTaskCollection at details@Concurrency@@QAE at XZ
-@ stub -arch=win64 ??1_StructuredTaskCollection at details@Concurrency@@QEAA at XZ
+@ thiscall -arch=win64 ??1_StructuredTaskCollection at details@Concurrency@@QEAA at XZ(ptr) StructuredTaskCollection_dtor
 @ stub -arch=arm ??1_TaskCollection at details@Concurrency@@QAA at XZ
 @ stub -arch=i386 ??1_TaskCollection at details@Concurrency@@QAE at XZ
 @ stub -arch=win64 ??1_TaskCollection at details@Concurrency@@QEAA at 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 at details@Concurrency@@QEAA at 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)
-- 
2.35.1




More information about the wine-devel mailing list