See https://gitlab.winehq.org/wine/wine/-/merge_requests/5071
-- v2: inetcomm: Force debug info in critical sections. dwrite: Force debug info in critical sections.
From: Paul Gofman pgofman@codeweavers.com
--- dlls/dinput/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index bb2feb0e8da..9a9b559902a 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -2131,7 +2131,7 @@ void dinput_device_init( struct dinput_device *device, const struct dinput_devic device->device_gain = 10000; device->autocenter = DIPROPAUTOCENTER_ON; device->force_feedback_state = DIGFFS_STOPPED | DIGFFS_EMPTY; - InitializeCriticalSection( &device->crit ); + InitializeCriticalSectionEx( &device->crit, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO ); dinput_internal_addref( (device->dinput = dinput) ); device->vtbl = vtbl;
From: Paul Gofman pgofman@codeweavers.com
--- dlls/dplayx/dplay.c | 2 +- dlls/dplayx/dplobby.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c index 9b287001e9e..d2d9c5f6a4a 100644 --- a/dlls/dplayx/dplay.c +++ b/dlls/dplayx/dplay.c @@ -5675,7 +5675,7 @@ HRESULT dplay_create( REFIID riid, void **ppv ) obj->ref4A = 0; obj->ref4 = 1;
- InitializeCriticalSection( &obj->lock ); + InitializeCriticalSectionEx( &obj->lock, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO ); obj->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectPlayImpl.lock");
if ( DP_CreateDirectPlay2( obj ) ) diff --git a/dlls/dplayx/dplobby.c b/dlls/dplayx/dplobby.c index aa2d44430f6..f7178597a9b 100644 --- a/dlls/dplayx/dplobby.c +++ b/dlls/dplayx/dplobby.c @@ -2043,7 +2043,7 @@ HRESULT dplobby_create( REFIID riid, void **ppv ) obj->ref3 = 1; obj->ref3A = 0;
- InitializeCriticalSection( &obj->lock ); + InitializeCriticalSectionEx( &obj->lock, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO ); obj->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectPlayLobbyImpl.lock"); DPQ_INIT( obj->msgs );
From: Paul Gofman pgofman@codeweavers.com
--- dlls/dsound/capture.c | 2 +- dlls/dsound/dsound.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/dsound/capture.c b/dlls/dsound/capture.c index 5956da792af..e9012600cfa 100644 --- a/dlls/dsound/capture.c +++ b/dlls/dsound/capture.c @@ -832,7 +832,7 @@ static HRESULT DirectSoundCaptureDevice_Create( device->ref = 1; device->state = STATE_STOPPED;
- InitializeCriticalSection( &(device->lock) ); + InitializeCriticalSectionEx( &(device->lock), 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO ); device->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": DirectSoundCaptureDevice.lock");
*ppDevice = device; diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c index 356f211d7bb..57fd6c1a651 100644 --- a/dlls/dsound/dsound.c +++ b/dlls/dsound/dsound.c @@ -177,7 +177,7 @@ static HRESULT DirectSoundDevice_Create(DirectSoundDevice ** ppDevice) device->primary_pwfx->nAvgBytesPerSec = device->primary_pwfx->nSamplesPerSec * device->primary_pwfx->nBlockAlign; device->primary_pwfx->cbSize = 0;
- InitializeCriticalSection(&(device->mixlock)); + InitializeCriticalSectionEx(&(device->mixlock), 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); device->mixlock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": DirectSoundDevice.mixlock");
InitializeSRWLock(&device->buffer_list_lock);
From: Paul Gofman pgofman@codeweavers.com
--- dlls/dwrite/font.c | 2 +- dlls/dwrite/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 2028440ca8e..83a293e57fe 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -5993,7 +5993,7 @@ void init_local_fontfile_loader(void) local_fontfile_loader.IDWriteLocalFontFileLoader_iface.lpVtbl = &localfontfileloadervtbl; local_fontfile_loader.refcount = 1; list_init(&local_fontfile_loader.streams); - InitializeCriticalSection(&local_fontfile_loader.cs); + InitializeCriticalSectionEx(&local_fontfile_loader.cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); local_fontfile_loader.cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": localfileloader.lock"); }
diff --git a/dlls/dwrite/main.c b/dlls/dwrite/main.c index 6776b1ce974..e8765f0672e 100644 --- a/dlls/dwrite/main.c +++ b/dlls/dwrite/main.c @@ -2097,7 +2097,7 @@ static void init_dwritefactory(struct dwritefactory *factory, DWRITE_FACTORY_TYP list_init(&factory->file_loaders); list_init(&factory->localfontfaces);
- InitializeCriticalSection(&factory->cs); + InitializeCriticalSectionEx(&factory->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); factory->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": dwritefactory.lock"); }
From: Paul Gofman pgofman@codeweavers.com
--- dlls/inetcomm/mimeintl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/inetcomm/mimeintl.c b/dlls/inetcomm/mimeintl.c index 1e5b1a0ce90..9a4c610d996 100644 --- a/dlls/inetcomm/mimeintl.c +++ b/dlls/inetcomm/mimeintl.c @@ -526,7 +526,7 @@ HRESULT MimeInternational_Construct(IMimeInternational **internat) global_internat = HeapAlloc(GetProcessHeap(), 0, sizeof(*global_internat)); global_internat->IMimeInternational_iface.lpVtbl = &mime_internat_vtbl; global_internat->refs = 0; - InitializeCriticalSection(&global_internat->cs); + InitializeCriticalSectionEx(&global_internat->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); global_internat->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": global_internat.cs");
list_init(&global_internat->charsets);
On Wed Feb 21 10:41:42 2024 +0000, Nikolay Sivov wrote:
Is this only meaningful when DebugInfo->Spare[0] is set to something? For this call it's not set.
Yes, it is only needed when DebugInfo is used after initializing section, I sent an update.
v2: - dwrite: don't request debug info for fontface CS where it is not used.
This merge request was approved by Nikolay Sivov.