diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-08 10:31:32 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-06-08 10:32:56 +0000 |
commit | 6cd3882bec5aa63b61d7cc9db66ff3bae5d43f1c (patch) | |
tree | 599f0c6cbf46c75f3b4eff41013a0bb05ad3ed44 /forms/source/component | |
parent | a4e33ce06eeb662d6c19d3144d73922bc8cee41a (diff) |
remove some manual ref-counting in forms
Change-Id: I6334dca6e98bfd4531033bec203518ca27f64bc0
Reviewed-on: https://gerrit.libreoffice.org/26049
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'forms/source/component')
-rw-r--r-- | forms/source/component/DatabaseForm.cxx | 21 | ||||
-rw-r--r-- | forms/source/component/DatabaseForm.hxx | 4 | ||||
-rw-r--r-- | forms/source/component/clickableimage.cxx | 12 | ||||
-rw-r--r-- | forms/source/component/clickableimage.hxx | 4 |
4 files changed, 11 insertions, 30 deletions
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx index 8d9dcf0b9595..c43fd3ad4202 100644 --- a/forms/source/component/DatabaseForm.cxx +++ b/forms/source/component/DatabaseForm.cxx @@ -261,11 +261,9 @@ ODatabaseForm::ODatabaseForm(const Reference<XComponentContext>& _rxContext) ,m_aResetListeners( *this, m_aMutex ) ,m_aPropertyBagHelper( *this ) ,m_pAggregatePropertyMultiplexer(nullptr) - ,m_pGroupManager( nullptr ) ,m_aParameterManager( m_aMutex, _rxContext ) ,m_aFilterManager() ,m_pLoadTimer(nullptr) - ,m_pThread(nullptr) ,m_nResetsPending(0) ,m_nPrivileges(0) ,m_bInsertOnly( false ) @@ -299,11 +297,9 @@ ODatabaseForm::ODatabaseForm( const ODatabaseForm& _cloneSource ) ,m_aResetListeners( *this, m_aMutex ) ,m_aPropertyBagHelper( *this ) ,m_pAggregatePropertyMultiplexer( nullptr ) - ,m_pGroupManager( nullptr ) ,m_aParameterManager( m_aMutex, _cloneSource.m_xContext ) ,m_aFilterManager() ,m_pLoadTimer( nullptr ) - ,m_pThread( nullptr ) ,m_nResetsPending( 0 ) ,m_nPrivileges( 0 ) ,m_bInsertOnly( _cloneSource.m_bInsertOnly ) @@ -423,15 +419,12 @@ void ODatabaseForm::impl_construct() osl_atomic_decrement( &m_refCount ); m_pGroupManager = new OGroupManager( this ); - m_pGroupManager->acquire(); } ODatabaseForm::~ODatabaseForm() { - - m_pGroupManager->release(); - m_pGroupManager = nullptr; + m_pGroupManager.clear(); if (m_xAggregate.is()) m_xAggregate->setDelegator( nullptr ); @@ -1281,11 +1274,7 @@ void ODatabaseForm::disposing() // cancel the submit/reset-thread { ::osl::MutexGuard aGuard( m_aMutex ); - if (m_pThread) - { - m_pThread->release(); - m_pThread = nullptr; - } + m_pThread.clear(); } EventObject aEvt(static_cast<XWeak*>(this)); @@ -1937,10 +1926,9 @@ void SAL_CALL ODatabaseForm::reset() throw( RuntimeException, std::exception ) ++m_nResetsPending; // create an own thread if we have (approve-)reset-listeners (so the listeners can't do that much damage // to this thread which is probably the main one) - if (!m_pThread) + if (!m_pThread.is()) { m_pThread = new OFormSubmitResetThread(this); - m_pThread->acquire(); m_pThread->create(); } EventObject aEvt; @@ -2108,10 +2096,9 @@ void SAL_CALL ODatabaseForm::submit( const Reference<XControl>& Control, { // create an own thread if we have (approve-)submit-listeners (so the listeners can't do that much damage // to this thread which is probably the main one) - if (!m_pThread) + if (!m_pThread.is()) { m_pThread = new OFormSubmitResetThread(this); - m_pThread->acquire(); m_pThread->create(); } m_pThread->addEvent(&MouseEvt, Control, true); diff --git a/forms/source/component/DatabaseForm.hxx b/forms/source/component/DatabaseForm.hxx index 1138c2a1ee50..48ae9b6888dc 100644 --- a/forms/source/component/DatabaseForm.hxx +++ b/forms/source/component/DatabaseForm.hxx @@ -175,12 +175,12 @@ class ODatabaseForm :public OFormComponents ::dbtools::WarningsContainer m_aWarnings; OPropertyChangeMultiplexer* m_pAggregatePropertyMultiplexer; // Management of the Control Groups - OGroupManager* m_pGroupManager; + rtl::Reference<OGroupManager> m_pGroupManager; ::dbtools::ParameterManager m_aParameterManager; ::dbtools::FilterManager m_aFilterManager; Timer* m_pLoadTimer; - OFormSubmitResetThread* m_pThread; + rtl::Reference<OFormSubmitResetThread> m_pThread; OUString m_sCurrentErrorContext; // will be used as additional context information // when an exception is catched and forwarded to the listeners diff --git a/forms/source/component/clickableimage.cxx b/forms/source/component/clickableimage.cxx index 82aafb5aa57e..3de265240b58 100644 --- a/forms/source/component/clickableimage.cxx +++ b/forms/source/component/clickableimage.cxx @@ -83,7 +83,6 @@ namespace frm OClickableImageBaseControl::OClickableImageBaseControl(const Reference<XComponentContext>& _rxFactory, const OUString& _aService) :OControl(_rxFactory, _aService) - ,m_pThread(nullptr) ,m_aSubmissionVetoListeners( m_aMutex ) ,m_aApproveActionListeners( m_aMutex ) ,m_aActionListeners( m_aMutex ) @@ -150,11 +149,7 @@ namespace frm { ::osl::MutexGuard aGuard( m_aMutex ); - if( m_pThread ) - { - m_pThread->release(); - m_pThread = nullptr; - } + m_pThread.clear(); } OControl::disposing(); @@ -163,13 +158,12 @@ namespace frm OImageProducerThread_Impl* OClickableImageBaseControl::getImageProducerThread() { - if ( !m_pThread ) + if ( !m_pThread.is() ) { m_pThread = new OImageProducerThread_Impl( this ); - m_pThread->acquire(); m_pThread->create(); } - return m_pThread; + return m_pThread.get(); } diff --git a/forms/source/component/clickableimage.hxx b/forms/source/component/clickableimage.hxx index ccb6b83b6903..b1ea4dcbdfb9 100644 --- a/forms/source/component/clickableimage.hxx +++ b/forms/source/component/clickableimage.hxx @@ -187,10 +187,10 @@ namespace frm friend class OImageProducerThread_Impl; private: - OImageProducerThread_Impl* m_pThread; + rtl::Reference<OImageProducerThread_Impl> m_pThread; ::comphelper::OInterfaceContainerHelper2 m_aSubmissionVetoListeners; ::std::unique_ptr< ControlFeatureInterception > - m_pFeatureInterception; + m_pFeatureInterception; protected: ::comphelper::OInterfaceContainerHelper2 m_aApproveActionListeners; |