diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-11-22 01:01:12 +0200 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-11-22 02:31:12 +0200 |
commit | d3da20d63f6ddf6f3760208d7db130d15860e852 (patch) | |
tree | cad36b0b2730d0864d49ee265f980f2906cdd707 /indra/llwindow/lldxhardware.cpp | |
parent | bfcc7a92b3c5f62c79879b8234c7055a3a83d9a5 (diff) |
SL-20603 Crash on CoInitialize
Don't mix CoInitialize and CoInitializeEx, one is global, other is
threaded.
CoInitialize(0) is equal to CoInitializeEx(0, COINIT_APARTMENTTHREADED)
and MULTITHREADED is not compatible with APARTMENTTHREADED.
Diffstat (limited to 'indra/llwindow/lldxhardware.cpp')
-rw-r--r-- | indra/llwindow/lldxhardware.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/indra/llwindow/lldxhardware.cpp b/indra/llwindow/lldxhardware.cpp index 391a377280..07856edefc 100644 --- a/indra/llwindow/lldxhardware.cpp +++ b/indra/llwindow/lldxhardware.cpp @@ -71,7 +71,7 @@ HRESULT GetVideoMemoryViaWMI(WCHAR* strInputDeviceID, DWORD* pdwAdapterRam) BSTR pNamespace = nullptr; *pdwAdapterRam = 0; - hrCoInitialize = CoInitialize( 0 ); + hrCoInitialize = CoInitializeEx(0, COINIT_MULTITHREADED); hr = CoCreateInstance( CLSID_WbemLocator, nullptr, @@ -234,7 +234,7 @@ std::string LLDXHardware::getDriverVersionWMI(EGPUVendor vendor) std::string mDriverVersion; HRESULT hrCoInitialize = S_OK; HRESULT hres; - hrCoInitialize = CoInitialize(0); + hrCoInitialize = CoInitializeEx(0, COINIT_MULTITHREADED); IWbemLocator *pLoc = NULL; hres = CoCreateInstance( @@ -687,7 +687,7 @@ BOOL LLDXHardware::getInfo(BOOL vram_only) BOOL ok = FALSE; HRESULT hr; - CoInitialize(NULL); + CoInitializeEx(NULL, COINIT_MULTITHREADED); IDxDiagProvider *dx_diag_providerp = NULL; IDxDiagContainer *dx_diag_rootp = NULL; @@ -976,7 +976,7 @@ LLSD LLDXHardware::getDisplayInfo() LLTimer hw_timer; HRESULT hr; LLSD ret; - CoInitialize(NULL); + CoInitializeEx(NULL, COINIT_MULTITHREADED); IDxDiagProvider *dx_diag_providerp = NULL; IDxDiagContainer *dx_diag_rootp = NULL; |