Piotr Caban : msvcp140: Add _Cnd_init_in_situ implementation.

Alexandre Julliard julliard at winehq.org
Fri Sep 23 10:25:17 CDT 2016


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Sep 23 16:28:21 2016 +0200

msvcp140: Add _Cnd_init_in_situ implementation.

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

---

 dlls/msvcp140/msvcp140.spec |  2 +-
 dlls/msvcp90/misc.c         | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 5980081..cc2e338 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -3626,7 +3626,7 @@
 @ stub _Cnd_destroy_in_situ
 @ stub _Cnd_do_broadcast_at_thread_exit
 @ cdecl _Cnd_init(ptr) _Cnd_init
-@ stub _Cnd_init_in_situ
+@ cdecl _Cnd_init_in_situ(ptr)
 @ stub _Cnd_register_at_thread_exit
 @ cdecl _Cnd_signal(ptr) _Cnd_signal
 @ cdecl _Cnd_timedwait(ptr ptr ptr) _Cnd_timedwait
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index 96339e2..4b3d506 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -584,10 +584,9 @@ typedef _Cnd_t *_Cnd_arg_t;
 
 static HANDLE keyed_event;
 
-int __cdecl _Cnd_init(_Cnd_t *cnd)
+void __cdecl _Cnd_init_in_situ(_Cnd_t cnd)
 {
-    *cnd = MSVCRT_operator_new(sizeof(**cnd));
-    InitializeConditionVariable(&(*cnd)->cv);
+    InitializeConditionVariable(&cnd->cv);
 
     if(!keyed_event) {
         HANDLE event;
@@ -596,7 +595,12 @@ int __cdecl _Cnd_init(_Cnd_t *cnd)
         if(InterlockedCompareExchangePointer(&keyed_event, event, NULL) != NULL)
             NtClose(event);
     }
+}
 
+int __cdecl _Cnd_init(_Cnd_t *cnd)
+{
+    *cnd = MSVCRT_operator_new(sizeof(**cnd));
+    _Cnd_init_in_situ(*cnd);
     return 0;
 }
 




More information about the wine-cvs mailing list