[PATCH v2 0/5] MR5127: Explicitly request debug info in critical sections.
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. https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
From: Paul Gofman <pgofman(a)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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
From: Paul Gofman <pgofman(a)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 ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
From: Paul Gofman <pgofman(a)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); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
From: Paul Gofman <pgofman(a)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"); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
From: Paul Gofman <pgofman(a)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); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
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.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5127#note_62205
v2: - dwrite: don't request debug info for fontface CS where it is not used. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5127#note_62206
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5127
participants (3)
-
Nikolay Sivov (@nsivov) -
Paul Gofman -
Paul Gofman (@gofman)