Module: wine Branch: master Commit: 4ba09e11a891ee120d6a6602f3a4ecb5aaaaa86a URL: http://source.winehq.org/git/wine.git/?a=commit;h=4ba09e11a891ee120d6a6602f3...
Author: Piotr Caban piotr@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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)