From: Paul Gofman pgofman@codeweavers.com
--- dlls/cryptowinrt/async.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/cryptowinrt/async.c b/dlls/cryptowinrt/async.c index dbf111cc880..5c3d718ae2d 100644 --- a/dlls/cryptowinrt/async.c +++ b/dlls/cryptowinrt/async.c @@ -355,7 +355,7 @@ static HRESULT async_info_create( IUnknown *invoker, IUnknown *param, async_oper if ((impl->invoker = invoker)) IUnknown_AddRef( impl->invoker ); if ((impl->param = param)) IUnknown_AddRef( impl->param );
- InitializeCriticalSection( &impl->cs ); + InitializeCriticalSectionEx( &impl->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO ); impl->cs.DebugInfo->Spare[0] = (DWORD_PTR)( __FILE__ ": async_info.cs" );
*out = &impl->IWineAsyncInfoImpl_iface;
From: Paul Gofman pgofman@codeweavers.com
--- dlls/diasymreader/writer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/diasymreader/writer.c b/dlls/diasymreader/writer.c index 55e0615c58e..bbf5b45dcfa 100644 --- a/dlls/diasymreader/writer.c +++ b/dlls/diasymreader/writer.c @@ -602,7 +602,7 @@ HRESULT SymWriter_CreateInstance(REFIID iid, void **ppv) This->iface.lpVtbl = &SymWriter_Vtbl; This->IPdbWriter_iface.lpVtbl = &SymWriter_PdbWriter_Vtbl; This->ref = 1; - InitializeCriticalSection(&This->lock); + InitializeCriticalSectionEx(&This->lock, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); This->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": SymWriter.lock"); UuidCreate(&This->pdb_guid); This->pdb_age = 1;
From: Paul Gofman pgofman@codeweavers.com
--- dlls/dsdmo/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dsdmo/main.c b/dlls/dsdmo/main.c index 77345b1b5d1..d6f36b53159 100644 --- a/dlls/dsdmo/main.c +++ b/dlls/dsdmo/main.c @@ -588,7 +588,7 @@ static void effect_init(struct effect *effect, IUnknown *outer, const struct eff effect->IMediaParams_iface.lpVtbl = &effect_media_params_vtbl; effect->IMediaParamInfo_iface.lpVtbl = &effect_media_param_info_vtbl;
- InitializeCriticalSection(&effect->cs); + InitializeCriticalSectionEx(&effect->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); effect->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": effect.cs");
effect->ops = ops;
From: Paul Gofman pgofman@codeweavers.com
--- dlls/qasf/asfreader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/qasf/asfreader.c b/dlls/qasf/asfreader.c index 7a832e9a718..91fdc6fbb34 100644 --- a/dlls/qasf/asfreader.c +++ b/dlls/qasf/asfreader.c @@ -1038,7 +1038,7 @@ HRESULT asf_reader_create(IUnknown *outer, IUnknown **out) strmbase_filter_init(&object->filter, outer, &CLSID_WMAsfReader, &filter_ops); object->IFileSourceFilter_iface.lpVtbl = &file_source_vtbl;
- InitializeCriticalSection(&object->status_cs); + InitializeCriticalSectionEx(&object->status_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); object->status_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": status_cs");
TRACE("Created WM ASF reader %p.\n", object);
From: Paul Gofman pgofman@codeweavers.com
--- programs/services/services.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/services/services.c b/programs/services/services.c index b45022eaec8..273a146c784 100644 --- a/programs/services/services.c +++ b/programs/services/services.c @@ -667,7 +667,7 @@ static DWORD scmdatabase_create(struct scmdatabase **db) list_init(&(*db)->processes); list_init(&(*db)->services);
- InitializeCriticalSection(&(*db)->cs); + InitializeCriticalSectionEx(&(*db)->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); (*db)->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": scmdatabase");
err = RegCreateKeyExW(HKEY_LOCAL_MACHINE, SZ_SERVICES_KEY, 0, NULL,
From: Paul Gofman pgofman@codeweavers.com
--- programs/explorer/desktop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c index 4e8f9a84c07..25bba7cb7cb 100644 --- a/programs/explorer/desktop.c +++ b/programs/explorer/desktop.c @@ -2402,7 +2402,7 @@ static void shellwindows_init(void) CoInitialize(NULL);
shellwindows.IShellWindows_iface.lpVtbl = &shellwindowsvtbl; - InitializeCriticalSection(&shellwindows.cs); + InitializeCriticalSectionEx(&shellwindows.cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); shellwindows.cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": shellwindows.cs");
hr = CoRegisterClassObject(&CLSID_ShellWindows,
From: Paul Gofman pgofman@codeweavers.com
--- dlls/kernel32/tests/sync.c | 8 ++++---- dlls/ntdll/sync.c | 8 ++++++-- dlls/ntdll/tests/rtl.c | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c index 25cf75cd686..c06ced47298 100644 --- a/dlls/kernel32/tests/sync.c +++ b/dlls/kernel32/tests/sync.c @@ -2741,7 +2741,7 @@ static void test_crit_section(void) to override that. */ memset(&cs, 0, sizeof(cs)); InitializeCriticalSection(&cs); - todo_wine ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, + ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, "Unexpected debug info pointer %p.\n", cs.DebugInfo); DeleteCriticalSection(&cs); ok(cs.DebugInfo == NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo); @@ -2755,7 +2755,7 @@ static void test_crit_section(void) memset(&cs, 0, sizeof(cs)); ret = pInitializeCriticalSectionEx(&cs, 0, 0); ok(ret, "Failed to initialize critical section.\n"); - todo_wine ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, + ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, "Unexpected debug info pointer %p.\n", cs.DebugInfo); DeleteCriticalSection(&cs); ok(cs.DebugInfo == NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo); @@ -2765,12 +2765,12 @@ static void test_crit_section(void) ok(ret, "Failed to initialize critical section.\n"); ok(cs.DebugInfo == (void *)(ULONG_PTR)-1, "Unexpected debug info pointer %p.\n", cs.DebugInfo); DeleteCriticalSection(&cs); - todo_wine ok(cs.DebugInfo == NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo); + ok(cs.DebugInfo == NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo);
memset(&cs, 0, sizeof(cs)); ret = pInitializeCriticalSectionEx(&cs, 0, 0); ok(ret, "Failed to initialize critical section.\n"); - todo_wine ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, + ok(cs.DebugInfo == (void *)(ULONG_PTR)-1 || broken(!!cs.DebugInfo) /* before Win8 */, "Unexpected debug info pointer %p.\n", cs.DebugInfo); DeleteCriticalSection(&cs); ok(cs.DebugInfo == NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo); diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index bb5dcbb66e6..00ab614803f 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -232,7 +232,7 @@ NTSTATUS WINAPI RtlInitializeCriticalSectionEx( RTL_CRITICAL_SECTION *crit, ULON * is done, then debug info should be managed through Rtlp[Allocate|Free]DebugInfo * so (e.g.) MakeCriticalSectionGlobal() doesn't free it using HeapFree(). */ - if (flags & RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO) + if (!(flags & RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) crit->DebugInfo = no_debug_info_marker; else { @@ -288,7 +288,11 @@ NTSTATUS WINAPI RtlDeleteCriticalSection( RTL_CRITICAL_SECTION *crit ) crit->DebugInfo = NULL; } } - else NtClose( crit->LockSemaphore ); + else + { + NtClose( crit->LockSemaphore ); + crit->DebugInfo = NULL; + } crit->LockSemaphore = 0; return STATUS_SUCCESS; } diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c index 4a4370d5903..224eeec6df7 100644 --- a/dlls/ntdll/tests/rtl.c +++ b/dlls/ntdll/tests/rtl.c @@ -2973,7 +2973,7 @@ static void test_RtlInitializeCriticalSectionEx(void)
memset(&cs, 0x11, sizeof(cs)); pRtlInitializeCriticalSectionEx(&cs, 0, 0); - ok((cs.DebugInfo != NULL && cs.DebugInfo != no_debug) || broken(cs.DebugInfo == no_debug) /* >= Win 8 */, + ok(cs.DebugInfo == no_debug || broken(cs.DebugInfo != NULL && cs.DebugInfo != no_debug) /* < Win8 */, "expected DebugInfo != NULL and DebugInfo != ~0, got %p\n", cs.DebugInfo); ok(cs.LockCount == -1, "expected LockCount == -1, got %ld\n", cs.LockCount); ok(cs.RecursionCount == 0, "expected RecursionCount == 0, got %ld\n", cs.RecursionCount);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=143846
Your paranoid android.
=== debian11 (32 bit report) ===
qasf: Unhandled exception: page fault on write access to 0x00000017 in 32-bit code (0x78cb0aff). Unhandled exception: page fault on write access to 0x00000017 in 32-bit code (0x78b8186c).
Report validation errors: qasf:asfreader prints too much data (42921 bytes)
=== debian11b (64 bit WoW report) ===
amstream: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000072dafd8f).
atl100: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c1865c).
devenum: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000074672004).
dinput: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000743a124e). hid.c:670: Test failed: failed to create device, error 0xe0000207 hid.c:673: Test failed: failed to create set hardware ID, error 87 hid.c:676: Test failed: failed to register device, error 87 hid.c:734: Test succeeded inside todo block: WaitForSingleObject returned 0
dxdiagn: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071ad2004). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071ad2004).
evr: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000725cfd8f).
gameux: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078f7865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078f7865c).
ieframe: ie.c:360: Test failed: Navigate2 failed: 800703e6 ie: Timeout Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
inetcomm: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
mf: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071b32004). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071b32004).
mshtml: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
msvfw32: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000739c2004).
msxml3: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
oleaut32: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
qasf: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073d99a8c). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073c0fd8f).
qcap: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000737afd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073312004). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000739af4b8). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007399fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007399fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000739af4b8). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000739af4b8).
qedit: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073cafd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073cafd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073cafd8f).
quartz: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007173fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000718b46a9). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071751125). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071739241). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007173fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000070ee2004). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007174f4b8). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007147fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000718b46a9). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007147fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000071751125). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007173fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007173fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007173fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000718b46a9).
scrobj: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
urlmon: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000078c3865c).
wbemdisp: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x000000743a483d).
windows.media.speech: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073ba2995).
winmm: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007344fd8f).
wmiutils: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073c1483d).
wmp: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007375fd8f). Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x0000007375fd8f).
wmvcore: Unhandled exception: page fault on write access to 0x0000000000000027 in 64-bit code (0x00000073939a8c).
Report validation errors: devenum:devenum prints too much data (54688 bytes) mfmediaengine:mfmediaengine crashed (c0000005) mfplat:mfplat crashed (c0000005) mfplay:mfplay crashed (c0000005) mfreadwrite:mfplat crashed (c0000005) mmdevapi:dependency crashed (c0000005) quartz:mpeglayer3 crashed (c0000005) urlmon:protocol crashed (c0000005) urlmon:url crashed (c0000005)
This merge request was approved by Zebediah Figura.
Oops sorry, missed that this one was waiting on me.