Piotr Caban : msvcp110: Add _Mtx_clear_owner implementation.

Alexandre Julliard julliard at winehq.org
Tue Mar 15 17:57:50 CDT 2022


Module: wine
Branch: master
Commit: 90c0807a87f97afe95c0a75b252361622f8ec9f3
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=90c0807a87f97afe95c0a75b252361622f8ec9f3

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Mar 15 14:36:41 2022 +0100

msvcp110: Add _Mtx_clear_owner implementation.

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

---

 dlls/msvcp110/msvcp110.spec         |  2 +-
 dlls/msvcp120/msvcp120.spec         |  2 +-
 dlls/msvcp120_app/msvcp120_app.spec |  2 +-
 dlls/msvcp140/msvcp140.spec         | 20 ++++++++++----------
 dlls/msvcp90/misc.c                 |  7 +++++++
 dlls/msvcp_win/msvcp_win.spec       |  2 +-
 6 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 514bc90b5e7..5eec1a003e0 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -3817,7 +3817,7 @@
 @ extern _LZero
 @ cdecl _Lock_shared_ptr_spin_lock()
 @ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr)
 @ cdecl _Mtx_current_owns(ptr)
 @ cdecl _Mtx_destroy(ptr)
 @ cdecl _Mtx_getconcrtcs(ptr)
diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec
index 6f868e190a9..18e13be46b8 100644
--- a/dlls/msvcp120/msvcp120.spec
+++ b/dlls/msvcp120/msvcp120.spec
@@ -3762,7 +3762,7 @@
 @ extern _LZero
 @ cdecl _Lock_shared_ptr_spin_lock()
 @ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr)
 @ cdecl _Mtx_current_owns(ptr)
 @ cdecl _Mtx_destroy(ptr)
 @ cdecl _Mtx_getconcrtcs(ptr)
diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec
index 0de36db8b36..72cdd258bd0 100644
--- a/dlls/msvcp120_app/msvcp120_app.spec
+++ b/dlls/msvcp120_app/msvcp120_app.spec
@@ -3762,7 +3762,7 @@
 @ extern _LZero msvcp120._LZero
 @ cdecl _Lock_shared_ptr_spin_lock() msvcp120._Lock_shared_ptr_spin_lock
 @ cdecl _Mbrtowc(ptr ptr long ptr ptr) msvcp120._Mbrtowc
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr) msvcp120._Mtx_clear_owner
 @ cdecl _Mtx_current_owns(ptr) msvcp120._Mtx_current_owns
 @ cdecl _Mtx_destroy(ptr) msvcp120._Mtx_destroy
 @ cdecl _Mtx_getconcrtcs(ptr) msvcp120._Mtx_getconcrtcs
diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 3945a4bfbd4..05b5b0feac3 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -3672,18 +3672,18 @@
 @ cdecl _Lstat(wstr ptr)
 @ cdecl _Make_dir(wstr) tr2_sys__Make_dir_wchar
 @ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
-@ cdecl _Mtx_current_owns(ptr) _Mtx_current_owns
-@ cdecl _Mtx_destroy(ptr) _Mtx_destroy
-@ cdecl _Mtx_destroy_in_situ(ptr) _Mtx_destroy_in_situ
-@ cdecl _Mtx_getconcrtcs(ptr) _Mtx_getconcrtcs
-@ cdecl _Mtx_init(ptr long) _Mtx_init
-@ cdecl _Mtx_init_in_situ(ptr long) _Mtx_init_in_situ
-@ cdecl _Mtx_lock(ptr) _Mtx_lock
+@ cdecl _Mtx_clear_owner(ptr)
+@ cdecl _Mtx_current_owns(ptr)
+@ cdecl _Mtx_destroy(ptr)
+@ cdecl _Mtx_destroy_in_situ(ptr)
+@ cdecl _Mtx_getconcrtcs(ptr)
+@ cdecl _Mtx_init(ptr long)
+@ cdecl _Mtx_init_in_situ(ptr long)
+@ cdecl _Mtx_lock(ptr)
 @ stub _Mtx_reset_owner
 @ stub _Mtx_timedlock
-@ cdecl _Mtx_trylock(ptr) _Mtx_trylock
-@ cdecl _Mtx_unlock(ptr) _Mtx_unlock
+@ cdecl _Mtx_trylock(ptr)
+@ cdecl _Mtx_unlock(ptr)
 @ stub _Mtxdst
 @ stub _Mtxinit
 @ stub _Mtxlock
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index 0ed75e233d8..ef1f292f37e 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -807,6 +807,13 @@ critical_section* __cdecl _Mtx_getconcrtcs(_Mtx_arg_t mtx)
     return &MTX_T_FROM_ARG(mtx)->cs;
 }
 
+void __cdecl _Mtx_clear_owner(_Mtx_arg_t mtx)
+{
+    _Mtx_t m = MTX_T_FROM_ARG(mtx);
+    m->thread_id = -1;
+    m->count--;
+}
+
 static inline LONG interlocked_dec_if_nonzero( LONG *dest )
 {
     LONG val, tmp;
diff --git a/dlls/msvcp_win/msvcp_win.spec b/dlls/msvcp_win/msvcp_win.spec
index c6ca765f158..fb6fd5cd1c2 100644
--- a/dlls/msvcp_win/msvcp_win.spec
+++ b/dlls/msvcp_win/msvcp_win.spec
@@ -3672,7 +3672,7 @@
 @ cdecl _Lstat(wstr ptr) msvcp140._Lstat
 @ cdecl _Make_dir(wstr) msvcp140._Make_dir
 @ cdecl _Mbrtowc(ptr ptr long ptr ptr) msvcp140._Mbrtowc
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr) msvcp140._Mtx_clear_owner
 @ cdecl _Mtx_current_owns(ptr) msvcp140._Mtx_current_owns
 @ cdecl _Mtx_destroy(ptr) msvcp140._Mtx_destroy
 @ cdecl _Mtx_destroy_in_situ(ptr) msvcp140._Mtx_destroy_in_situ




More information about the wine-cvs mailing list