From a60fcb15046a60fa35fc4ea07d1411bf3563fe2e Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 21 Feb 2023 15:38:12 +0200 Subject: osl::Mutex->std::mutex in OSQLParseNodesContainer Change-Id: Ie47589a454799494bc150eec1e135c8948eb7fbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147420 Tested-by: Jenkins Reviewed-by: Noel Grandin --- connectivity/source/parse/sqlnode.cxx | 10 ++++++---- include/connectivity/sqlparse.hxx | 9 ++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx index d98e8cc80064..fecb00cdc9b2 100644 --- a/connectivity/source/parse/sqlnode.cxx +++ b/connectivity/source/parse/sqlnode.cxx @@ -2731,13 +2731,13 @@ OSQLParseNodesContainer::~OSQLParseNodesContainer() void OSQLParseNodesContainer::push_back(OSQLParseNode* _pNode) { - ::osl::MutexGuard aGuard(m_aMutex); + std::unique_lock aGuard(m_aMutex); m_aNodes.push_back(_pNode); } void OSQLParseNodesContainer::erase(OSQLParseNode* _pNode) { - ::osl::MutexGuard aGuard(m_aMutex); + std::unique_lock aGuard(m_aMutex); if ( !m_aNodes.empty() ) { std::vector< OSQLParseNode* >::iterator aFind = std::find(m_aNodes.begin(), m_aNodes.end(),_pNode); @@ -2748,13 +2748,13 @@ void OSQLParseNodesContainer::erase(OSQLParseNode* _pNode) void OSQLParseNodesContainer::clear() { - ::osl::MutexGuard aGuard(m_aMutex); + std::unique_lock aGuard(m_aMutex); m_aNodes.clear(); } void OSQLParseNodesContainer::clearAndDelete() { - ::osl::MutexGuard aGuard(m_aMutex); + std::unique_lock aGuard(m_aMutex); // clear the garbage collector while ( !m_aNodes.empty() ) { @@ -2763,7 +2763,9 @@ void OSQLParseNodesContainer::clearAndDelete() { pNode = pNode->getParent(); } + aGuard.unlock(); // can call back into this object during destruction delete pNode; + aGuard.lock(); } } } // namespace connectivity diff --git a/include/connectivity/sqlparse.hxx b/include/connectivity/sqlparse.hxx index 0a8523e436a8..d3eedd484137 100644 --- a/include/connectivity/sqlparse.hxx +++ b/include/connectivity/sqlparse.hxx @@ -19,11 +19,7 @@ #ifndef INCLUDED_CONNECTIVITY_SQLPARSE_HXX #define INCLUDED_CONNECTIVITY_SQLPARSE_HXX -#include -#include - #include -#include #include #include #include @@ -31,6 +27,9 @@ #include #include +#include +#include +#include namespace com::sun::star::i18n { class XCharacterClassification; } namespace com::sun::star::i18n { class XLocaleData4; } @@ -82,7 +81,7 @@ namespace connectivity class OSQLParseNodesContainer { - ::osl::Mutex m_aMutex; + std::mutex m_aMutex; ::std::vector< OSQLParseNode* > m_aNodes; public: OSQLParseNodesContainer(); -- cgit v1.2.3