bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
New commits: commit 587c530d13a5427ea6610d68d3db3fde27f50725 Author: Arnaud VERSINI <arnaud.vers...@pm.me> AuthorDate: Sun Dec 19 12:34:40 2021 +0100 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Mon Dec 20 14:14:44 2021 +0100 bridges : use std mutex instead of osl::Mutex. The lock_guard moved from RTTI::GetRTTI to x86_64::getRtti to avoid recursive lock. Change-Id: I0e71581dd57a4fb2655d4b9040fb9d943f73ab9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127095 Reviewed-by: Stephan Bergmann <sberg...@redhat.com> Tested-by: Jenkins diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx index 6e022515b2d7..242e2a476e23 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx @@ -21,6 +21,7 @@ #include <cassert> #include <memory> +#include <mutex> #include <typeinfo> #include <unordered_map> #include <utility> @@ -28,7 +29,6 @@ #include <dlfcn.h> -#include <osl/mutex.hxx> #include <rtl/strbuf.hxx> #include <rtl/ustring.hxx> #include <sal/log.hxx> @@ -74,7 +74,6 @@ class RTTI { typedef std::unordered_map< OUString, std::type_info * > t_rtti_map; - osl::Mutex m_mutex; t_rtti_map m_rttis; std::vector<OString> m_rttiNames; std::unordered_map<OUString, std::unique_ptr<Generated>> m_generatedRttis; @@ -108,7 +107,6 @@ std::type_info * RTTI::getRTTI(typelib_TypeDescription const & pTypeDescr) { OUString const & unoName = OUString::unacquired(&pTypeDescr.pTypeName); - osl::MutexGuard guard( m_mutex ); t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) ); if (iFind != m_rttis.end()) return iFind->second; @@ -268,6 +266,8 @@ std::type_info * RTTI::getRTTI(typelib_TypeDescription const & pTypeDescr) std::type_info * x86_64::getRtti(typelib_TypeDescription const & type) { static RTTI theRttiFactory; + static std::mutex theMutex; + std::lock_guard aGuard(theMutex); return theRttiFactory.getRTTI(type); }