Rémi Bernon : ntdll: Respect HEAP_NO_SERIALIZE flag in HeapLock / HeapUnlock.

Alexandre Julliard julliard at winehq.org
Thu May 5 15:56:00 CDT 2022


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

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Tue Apr 26 15:13:24 2022 +0200

ntdll: Respect HEAP_NO_SERIALIZE flag in HeapLock / HeapUnlock.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/heap.c | 2 --
 dlls/ntdll/heap.c          | 4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c
index d40549e999b..4f808c8c7e6 100644
--- a/dlls/kernel32/tests/heap.c
+++ b/dlls/kernel32/tests/heap.c
@@ -952,11 +952,9 @@ static void test_HeapCreate(void)
     thread_params.flags = 0;
     SetEvent( thread_params.start_event );
     res = WaitForSingleObject( thread_params.ready_event, 100 );
-    todo_wine
     ok( !res, "WaitForSingleObject returned %#lx, error %lu\n", res, GetLastError() );
     ret = HeapUnlock( heap );
     ok( ret, "HeapUnlock failed, error %lu\n", GetLastError() );
-    if (res) WaitForSingleObject( thread_params.ready_event, 100 );
 
     ret = HeapLock( heap );
     ok( ret, "HeapLock failed, error %lu\n", GetLastError() );
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c
index 89f59440edf..1aa064723a8 100644
--- a/dlls/ntdll/heap.c
+++ b/dlls/ntdll/heap.c
@@ -1992,7 +1992,7 @@ BOOLEAN WINAPI RtlLockHeap( HANDLE heap )
 {
     HEAP *heapPtr = HEAP_GetPtr( heap );
     if (!heapPtr) return FALSE;
-    RtlEnterCriticalSection( &heapPtr->cs );
+    heap_lock( heapPtr, 0 );
     return TRUE;
 }
 
@@ -2013,7 +2013,7 @@ BOOLEAN WINAPI RtlUnlockHeap( HANDLE heap )
 {
     HEAP *heapPtr = HEAP_GetPtr( heap );
     if (!heapPtr) return FALSE;
-    RtlLeaveCriticalSection( &heapPtr->cs );
+    heap_unlock( heapPtr, 0 );
     return TRUE;
 }
 




More information about the wine-cvs mailing list