Module: wine Branch: master Commit: 86557b9e0ba8a783f1b0d0918b1ddec7e0a7749e URL: https://gitlab.winehq.org/wine/wine/-/commit/86557b9e0ba8a783f1b0d0918b1ddec...
Author: Paul Gofman pgofman@codeweavers.com Date: Tue Mar 19 12:44:58 2024 -0600
strmbase: Fallback to InitializeCriticalSection() if RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO is unsupported.
---
libs/strmbase/filter.c | 6 ++++-- libs/strmbase/pospass.c | 3 ++- libs/strmbase/seeking.c | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/libs/strmbase/filter.c b/libs/strmbase/filter.c index fa8738188a2..3229c7ba82a 100644 --- a/libs/strmbase/filter.c +++ b/libs/strmbase/filter.c @@ -524,10 +524,12 @@ void strmbase_filter_init(struct strmbase_filter *filter, IUnknown *outer, filter->outer_unk = outer ? outer : &filter->IUnknown_inner; filter->refcount = 1;
- InitializeCriticalSectionEx(&filter->filter_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); + if (!InitializeCriticalSectionEx(&filter->filter_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) + InitializeCriticalSection(&filter->filter_cs); if (filter->filter_cs.DebugInfo != (RTL_CRITICAL_SECTION_DEBUG *)-1) filter->filter_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": strmbase_filter.filter_cs"); - InitializeCriticalSectionEx(&filter->stream_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); + if (!InitializeCriticalSectionEx(&filter->stream_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) + InitializeCriticalSection(&filter->stream_cs); if (filter->stream_cs.DebugInfo != (RTL_CRITICAL_SECTION_DEBUG *)-1) filter->stream_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": strmbase_filter.stream_cs"); filter->clsid = *clsid; diff --git a/libs/strmbase/pospass.c b/libs/strmbase/pospass.c index 79ebf44cf24..2b6321432bd 100644 --- a/libs/strmbase/pospass.c +++ b/libs/strmbase/pospass.c @@ -730,7 +730,8 @@ void strmbase_passthrough_init(struct strmbase_passthrough *passthrough, IUnknow passthrough->IMediaPosition_iface.lpVtbl = &IMediaPositionPassThru_Vtbl; passthrough->IMediaSeeking_iface.lpVtbl = &IMediaSeekingPassThru_Vtbl; passthrough->ISeekingPassThru_iface.lpVtbl = &ISeekingPassThru_Vtbl; - InitializeCriticalSectionEx(&passthrough->time_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); + if (!InitializeCriticalSectionEx(&passthrough->time_cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) + InitializeCriticalSection(&passthrough->time_cs); passthrough->time_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": strmbase_passthrough.time_cs" ); }
diff --git a/libs/strmbase/seeking.c b/libs/strmbase/seeking.c index 574083b985f..62e6d454a57 100644 --- a/libs/strmbase/seeking.c +++ b/libs/strmbase/seeking.c @@ -49,7 +49,8 @@ HRESULT strmbase_seeking_init(SourceSeeking *pSeeking, const IMediaSeekingVtbl * pSeeking->llDuration = pSeeking->llStop; pSeeking->dRate = 1.0; pSeeking->timeformat = TIME_FORMAT_MEDIA_TIME; - InitializeCriticalSectionEx(&pSeeking->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO); + if (!InitializeCriticalSectionEx(&pSeeking->cs, 0, RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) + InitializeCriticalSection(&pSeeking->cs); pSeeking->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": SourceSeeking.cs"); return S_OK; }