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