From 95e12689e6e100e11e7857a12a714311c6cb4c93 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Thu, 15 Feb 2024 15:06:25 -0600
Subject: [PATCH] webservices: Force debug info in critical sections.

---
 dlls/webservices/channel.c  | 6 +++---
 dlls/webservices/error.c    | 2 +-
 dlls/webservices/heap.c     | 2 +-
 dlls/webservices/listener.c | 2 +-
 dlls/webservices/msg.c      | 2 +-
 dlls/webservices/proxy.c    | 2 +-
 dlls/webservices/reader.c   | 2 +-
 dlls/webservices/writer.c   | 2 +-
 8 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/dlls/webservices/channel.c b/dlls/webservices/channel.c
index 5851fd9d4af..b58a2d44457 100644
--- a/dlls/webservices/channel.c
+++ b/dlls/webservices/channel.c
@@ -252,9 +252,9 @@ static struct channel *alloc_channel(void)
     if (!(ret = calloc( 1, size ))) return NULL;
 
     ret->magic      = CHANNEL_MAGIC;
-    InitializeCriticalSection( &ret->cs );
-    InitializeCriticalSection( &ret->send_q.cs );
-    InitializeCriticalSection( &ret->recv_q.cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
+    InitializeCriticalSectionEx( &ret->send_q.cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
+    InitializeCriticalSectionEx( &ret->recv_q.cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": channel.cs");
     ret->send_q.cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": channel.send_q.cs");
     ret->recv_q.cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": channel.recv_q.cs");
diff --git a/dlls/webservices/error.c b/dlls/webservices/error.c
index aa1a9744f34..9e57f454ce9 100644
--- a/dlls/webservices/error.c
+++ b/dlls/webservices/error.c
@@ -67,7 +67,7 @@ static struct error *alloc_error(void)
     }
 
     ret->magic      = ERROR_MAGIC;
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": error.cs");
 
     prop_init( error_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/heap.c b/dlls/webservices/heap.c
index b2ee514b970..71ef42c9530 100644
--- a/dlls/webservices/heap.c
+++ b/dlls/webservices/heap.c
@@ -184,7 +184,7 @@ static struct heap *alloc_heap(void)
     if (!(ret = calloc( 1, size ))) return NULL;
 
     ret->magic      = HEAP_MAGIC;
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": heap.cs");
 
     prop_init( heap_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/listener.c b/dlls/webservices/listener.c
index 3112d5d84fd..da4e135703f 100644
--- a/dlls/webservices/listener.c
+++ b/dlls/webservices/listener.c
@@ -141,7 +141,7 @@ static struct listener *alloc_listener(void)
         free( ret );
         return NULL;
     }
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": listener.cs");
 
     prop_init( listener_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/msg.c b/dlls/webservices/msg.c
index 7f6cd028163..5912195e015 100644
--- a/dlls/webservices/msg.c
+++ b/dlls/webservices/msg.c
@@ -108,7 +108,7 @@ static struct msg *alloc_msg(void)
     ret->state       = WS_MESSAGE_STATE_EMPTY;
     ret->header_size = HEADER_ARRAY_SIZE;
 
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": msg.cs");
 
     prop_init( msg_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/proxy.c b/dlls/webservices/proxy.c
index bde4cdb168f..d00ad4ad70b 100644
--- a/dlls/webservices/proxy.c
+++ b/dlls/webservices/proxy.c
@@ -62,7 +62,7 @@ static struct proxy *alloc_proxy(void)
     if (!(ret = calloc( 1, size ))) return NULL;
 
     ret->magic      = PROXY_MAGIC;
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": proxy.cs");
 
     prop_init( proxy_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c
index 0c8ddcea035..0cd974c9118 100644
--- a/dlls/webservices/reader.c
+++ b/dlls/webservices/reader.c
@@ -422,7 +422,7 @@ static struct reader *alloc_reader(void)
     ret->nb_prefixes = ret->nb_prefixes_allocated = 1;
 
     ret->magic       = READER_MAGIC;
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": reader.cs");
 
     prop_init( reader_props, count, ret->prop, &ret[1] );
diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index 6923035f00c..df8535f8647 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -109,7 +109,7 @@ static struct writer *alloc_writer(void)
     if (!(ret = calloc( 1, size ))) return NULL;
 
     ret->magic      = WRITER_MAGIC;
-    InitializeCriticalSection( &ret->cs );
+    InitializeCriticalSectionEx( &ret->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO );
     ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": writer.cs");
 
     prop_init( writer_props, count, ret->prop, &ret[1] );