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>
This commit is contained in:
parent
a4e33ce06e
commit
6cd3882bec
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
@ -130,11 +130,9 @@ namespace frm
|
||||
|
||||
OPasteClipboardDispatcher::OPasteClipboardDispatcher( EditView& _rView )
|
||||
:OClipboardDispatcher( _rView, ePaste )
|
||||
,m_pClipListener( nullptr )
|
||||
,m_bPastePossible( false )
|
||||
{
|
||||
m_pClipListener = new TransferableClipboardListener( LINK( this, OPasteClipboardDispatcher, OnClipboardChanged ) );
|
||||
m_pClipListener->acquire();
|
||||
m_pClipListener->AddListener( _rView.GetWindow() );
|
||||
|
||||
// initial state
|
||||
@ -166,13 +164,12 @@ namespace frm
|
||||
void OPasteClipboardDispatcher::disposing( ::osl::ClearableMutexGuard& _rClearBeforeNotify )
|
||||
{
|
||||
OSL_ENSURE( getEditView() && getEditView()->GetWindow(), "OPasteClipboardDispatcher::disposing: EditView should not (yet) be disfunctional here!" );
|
||||
if (m_pClipListener)
|
||||
if (m_pClipListener.is())
|
||||
{
|
||||
if (getEditView() && getEditView()->GetWindow())
|
||||
m_pClipListener->RemoveListener( getEditView()->GetWindow() );
|
||||
|
||||
m_pClipListener->release();
|
||||
m_pClipListener = nullptr;
|
||||
m_pClipListener.clear();
|
||||
}
|
||||
|
||||
OClipboardDispatcher::disposing( _rClearBeforeNotify );
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include "featuredispatcher.hxx"
|
||||
#include <tools/link.hxx>
|
||||
#include <rtl/ref.hxx>
|
||||
|
||||
class TransferableClipboardListener;
|
||||
class TransferableDataHelper;
|
||||
@ -65,7 +66,7 @@ namespace frm
|
||||
class OPasteClipboardDispatcher : public OClipboardDispatcher
|
||||
{
|
||||
private:
|
||||
TransferableClipboardListener* m_pClipListener;
|
||||
rtl::Reference<TransferableClipboardListener> m_pClipListener;
|
||||
bool m_bPastePossible;
|
||||
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user