Module: wine Branch: master Commit: 3c0e318582f1b3058ab3fc8f858f6a0edacc59ad URL: https://gitlab.winehq.org/wine/wine/-/commit/3c0e318582f1b3058ab3fc8f858f6a0...
Author: Paul Gofman pgofman@codeweavers.com Date: Mon May 13 12:46:40 2024 -0600
ntdll: Allocate crit section debug info by default for Windows versions before 8.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56661
---
dlls/ntdll/sync.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index efc820624bb..274e29d1852 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -187,12 +187,19 @@ static inline NTSTATUS wait_semaphore( RTL_CRITICAL_SECTION *crit, int timeout ) } }
+static ULONG crit_sect_default_flags(void) +{ + if (NtCurrentTeb()->Peb->OSMajorVersion > 6 || + (NtCurrentTeb()->Peb->OSMajorVersion == 6 && NtCurrentTeb()->Peb->OSMinorVersion >= 2)) return 0; + return RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO; +} + /****************************************************************************** * RtlInitializeCriticalSection (NTDLL.@) */ NTSTATUS WINAPI RtlInitializeCriticalSection( RTL_CRITICAL_SECTION *crit ) { - return RtlInitializeCriticalSectionEx( crit, 0, 0 ); + return RtlInitializeCriticalSectionEx( crit, 0, crit_sect_default_flags() ); }
@@ -201,7 +208,7 @@ NTSTATUS WINAPI RtlInitializeCriticalSection( RTL_CRITICAL_SECTION *crit ) */ NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount( RTL_CRITICAL_SECTION *crit, ULONG spincount ) { - return RtlInitializeCriticalSectionEx( crit, spincount, 0 ); + return RtlInitializeCriticalSectionEx( crit, spincount, crit_sect_default_flags() ); }