dbaccess/source/ui/dlg/adodatalinks.cxx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
New commits: commit ac411c83c82babb325e2bfd32f4e7009e86eac78 Author: Julien Nabet <[email protected]> AuthorDate: Sun Jun 7 15:42:41 2020 +0200 Commit: Mike Kaganski <[email protected]> CommitDate: Thu Jun 11 15:28:55 2020 +0200 Use o3tl::safeCoInitializeEx and counterpart (dbaccess/adodatalinks) + add calls to o3tl::safeCoUninitializeReinit in error case blocks Change-Id: I781f174a43cd1c6b827299657a667fbb34f50143 Change-Id: I9895db229814837f0c0d756bca2c52c54d3d2e9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95690 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/dbaccess/source/ui/dlg/adodatalinks.cxx b/dbaccess/source/ui/dlg/adodatalinks.cxx index fc129b2dea33..5792345ee61c 100644 --- a/dbaccess/source/ui/dlg/adodatalinks.cxx +++ b/dbaccess/source/ui/dlg/adodatalinks.cxx @@ -42,7 +42,12 @@ OUString PromptNew(long hWnd) BSTR _result=nullptr; // Initialize COM - ::CoInitializeEx( nullptr, COINIT_APARTMENTTHREADED ); + hr = ::CoInitializeEx( nullptr, COINIT_APARTMENTTHREADED ); + bool bDoUninit = true; + if (FAILED(hr) && hr != RPC_E_CHANGED_MODE) + std::abort(); + if (hr == RPC_E_CHANGED_MODE) + bDoUninit = false; // Instantiate DataLinks object. hr = CoCreateInstance( @@ -83,7 +88,8 @@ OUString PromptNew(long hWnd) piTmpConnection->Release( ); dlPrompt->Release( ); - CoUninitialize(); + if (bDoUninit) + CoUninitialize(); // Don't we need SysFreeString(_result)? return o3tl::toU(_result); } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
