[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - shell/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Wed May 15 09:01:30 UTC 2019
shell/source/win32/spsupp/spsuppServ.cxx | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
New commits:
commit dbe7d8ad6512fef4593d4d92313905fb0d580caa
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed May 15 08:31:44 2019 +0200
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed May 15 11:00:36 2019 +0200
Use lambdas to initialize statics
Change-Id: Ib03bfd795967ba70333d71d9e5eeec97be90be79
Reviewed-on: https://gerrit.libreoffice.org/72334
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
(cherry picked from commit a11536d5ea695826844581c8c8f883970e0c8294)
Reviewed-on: https://gerrit.libreoffice.org/72341
Tested-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/shell/source/win32/spsupp/spsuppServ.cxx b/shell/source/win32/spsupp/spsuppServ.cxx
index 6fdd4c0e5396..da9d32b9cd32 100644
--- a/shell/source/win32/spsupp/spsuppServ.cxx
+++ b/shell/source/win32/spsupp/spsuppServ.cxx
@@ -35,35 +35,33 @@ HANDLE g_hModule;
ITypeLib* GetTypeLib()
{
typedef std::unique_ptr<ITypeLib, void(*)(IUnknown* p)> ITypeLibGuard;
- static ITypeLibGuard aITypeLibGuard(nullptr, [](IUnknown* p) { if (p) p->Release(); });
- if (!aITypeLibGuard.get())
- {
+ static ITypeLibGuard s_aITypeLibGuard = [] {
+ ITypeLibGuard aITypeLibGuard(nullptr, [](IUnknown* p) { if (p) p->Release(); });
wchar_t szFile[MAX_PATH];
if (GetModuleFileNameW(static_cast<HMODULE>(g_hModule), szFile, MAX_PATH) == 0)
- return nullptr;
+ return aITypeLibGuard;
ITypeLib* pTypeLib;
- HRESULT hr = LoadTypeLib(szFile, &pTypeLib);
- if (FAILED(hr))
- return nullptr;
+ if (FAILED(LoadTypeLib(szFile, &pTypeLib)))
+ return aITypeLibGuard;
aITypeLibGuard.reset(pTypeLib);
- }
- return aITypeLibGuard.get();
+ return aITypeLibGuard;
+ }();
+ return s_aITypeLibGuard.get();
}
const wchar_t* GetLOPath()
{
- static wchar_t sPath[MAX_PATH] = { 0 };
- if (*sPath == 0)
- {
- // Initialization
+ static wchar_t* s_sPath = []() -> wchar_t* {
+ static wchar_t sPath[MAX_PATH];
if (GetModuleFileNameW(static_cast<HMODULE>(g_hModule), sPath, MAX_PATH) == 0)
return nullptr;
wchar_t* pSlashPos = wcsrchr(sPath, L'\\');
if (pSlashPos == nullptr)
return nullptr;
- wcscpy(pSlashPos+1, L"soffice.exe");
- }
- return sPath;
+ wcscpy(pSlashPos + 1, L"soffice.exe");
+ return sPath;
+ }();
+ return s_sPath;
}
BOOL APIENTRY DllMain( HANDLE hinstDLL,
More information about the Libreoffice-commits
mailing list