Paul Gofman : ntdll: Allocate crit section debug info by default for Windows versions before 8.
Module: wine Branch: master Commit: 3c0e318582f1b3058ab3fc8f858f6a0edacc59ad URL: https://gitlab.winehq.org/wine/wine/-/commit/3c0e318582f1b3058ab3fc8f858f6a0... Author: Paul Gofman <pgofman(a)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() ); }
participants (1)
-
Alexandre Julliard