Piotr Caban : ucrtbase: Add __std_type_info_destroy_list implementation.

Alexandre Julliard julliard at winehq.org
Thu Aug 4 17:20:18 CDT 2016


Module: wine
Branch: master
Commit: 4ba09e11a891ee120d6a6602f3a4ecb5aaaaa86a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4ba09e11a891ee120d6a6602f3a4ecb5aaaaa86a

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Aug  4 16:28:55 2016 +0200

ucrtbase: Add __std_type_info_destroy_list implementation.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 .../api-ms-win-crt-private-l1-1-0.spec                   |  2 +-
 dlls/msvcrt/cpp.c                                        | 16 ++++++++++++++++
 dlls/ucrtbase/ucrtbase.spec                              |  2 +-
 dlls/vcruntime140/vcruntime140.spec                      |  2 +-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
index d8f4c52..a007823 100644
--- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
@@ -45,7 +45,7 @@
 @ cdecl __std_exception_copy(ptr ptr) ucrtbase.__std_exception_copy
 @ cdecl __std_exception_destroy(ptr) ucrtbase.__std_exception_destroy
 @ cdecl __std_type_info_compare(ptr ptr) ucrtbase.__std_type_info_compare
-@ stub __std_type_info_destroy_list
+@ cdecl __std_type_info_destroy_list(ptr) ucrtbase.__std_type_info_destroy_list
 @ stub __std_type_info_hash
 @ cdecl __std_type_info_name(ptr ptr) ucrtbase.__std_type_info_name
 @ cdecl __unDName(ptr str long ptr ptr long) ucrtbase.__unDName
diff --git a/dlls/msvcrt/cpp.c b/dlls/msvcrt/cpp.c
index ee27fc7..3621f12 100644
--- a/dlls/msvcrt/cpp.c
+++ b/dlls/msvcrt/cpp.c
@@ -1572,4 +1572,20 @@ const char* CDECL MSVCRT_type_info_name_list(type_info140 *ti, SLIST_HEADER *hea
       TRACE("(%p) returning %s\n", ti, ti->name);
       return ti->name;
 }
+
+/******************************************************************
+ *		__std_type_info_destroy_list  (UCRTBASE.@)
+ */
+void CDECL MSVCRT_type_info_destroy_list(SLIST_HEADER *header)
+{
+    SLIST_ENTRY *cur, *next;
+
+    TRACE("(%p)\n", header);
+
+    for(cur = InterlockedFlushSList(header); cur; cur = next)
+    {
+        next = cur->Next;
+        MSVCRT_free(cur);
+    }
+}
 #endif
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index d1c1553..bb549d1 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -143,7 +143,7 @@
 @ cdecl __std_exception_copy(ptr ptr) MSVCRT___std_exception_copy
 @ cdecl __std_exception_destroy(ptr) MSVCRT___std_exception_destroy
 @ cdecl __std_type_info_compare(ptr ptr) MSVCRT_type_info_compare
-@ stub __std_type_info_destroy_list
+@ cdecl __std_type_info_destroy_list(ptr) MSVCRT_type_info_destroy_list
 @ stub __std_type_info_hash
 @ cdecl __std_type_info_name(ptr ptr) MSVCRT_type_info_name_list
 @ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) MSVCRT__stdio_common_vfprintf
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
index 525a998..8d6c060 100644
--- a/dlls/vcruntime140/vcruntime140.spec
+++ b/dlls/vcruntime140/vcruntime140.spec
@@ -40,7 +40,7 @@
 @ cdecl __std_exception_destroy(ptr) ucrtbase.__std_exception_destroy
 @ stub __std_terminate
 @ cdecl __std_type_info_compare(ptr ptr) ucrtbase.__std_type_info_compare
-@ stub __std_type_info_destroy_list
+@ cdecl __std_type_info_destroy_list(ptr) ucrtbase.__std_type_info_destroy_list
 @ stub __std_type_info_hash
 @ cdecl __std_type_info_name(ptr ptr) ucrtbase.__std_type_info_name
 @ cdecl __telemetry_main_invoke_trigger(ptr)




More information about the wine-cvs mailing list