editeng/source/uno/unofield.cxx                        |    1 +
 editeng/source/uno/unotext2.cxx                        |    3 +++
 embeddedobj/source/msole/olemisc.cxx                   |    9 +++++++++
 extensions/source/bibliography/framectr.cxx            |    3 +++
 extensions/source/propctrlr/genericpropertyhandler.cxx |   17 ++++++++++++++++-
 extensions/source/propctrlr/propcontroller.cxx         |    3 +++
 extensions/source/propctrlr/propertyhandler.cxx        |   17 ++++++++++++++++-
 extensions/source/propctrlr/sqlcommanddesign.cxx       |    2 ++
 8 files changed, 53 insertions(+), 2 deletions(-)

New commits:
commit fa0e4fa0154b15fa1c04495562d08b4490ec984b
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Sep 12 14:59:45 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Sep 13 09:45:44 2023 +0200

    loplugin:unodispose in editeng..extensions
    
    Change-Id: I6545cf93b0a101d3a3eea0abe9c1732fcf3dc2d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156850
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx
index c9b1adc90fe4..6f2e84a9577d 100644
--- a/editeng/source/uno/unofield.cxx
+++ b/editeng/source/uno/unofield.cxx
@@ -650,6 +650,7 @@ uno::Reference< text::XTextRange > SAL_CALL 
SvxUnoTextField::getAnchor()
 void SAL_CALL SvxUnoTextField::dispose()
 {
     OComponentHelper::dispose();
+    mxAnchor.clear();
 }
 
 void SAL_CALL SvxUnoTextField::addEventListener( const uno::Reference< 
lang::XEventListener >& xListener )
diff --git a/editeng/source/uno/unotext2.cxx b/editeng/source/uno/unotext2.cxx
index 79706cad2d2e..54714027b388 100644
--- a/editeng/source/uno/unotext2.cxx
+++ b/editeng/source/uno/unotext2.cxx
@@ -239,7 +239,10 @@ void SAL_CALL SvxUnoTextContent::dispose()
     }
 
     if( mxParentText.is() )
+    {
         mxParentText->removeTextContent( this );
+        mxParentText.clear();
+    }
 }
 
 void SAL_CALL SvxUnoTextContent::addEventListener( const uno::Reference< 
lang::XEventListener >& xListener )
diff --git a/embeddedobj/source/msole/olemisc.cxx 
b/embeddedobj/source/msole/olemisc.cxx
index 6d371d428fd6..4f50aedeba5f 100644
--- a/embeddedobj/source/msole/olemisc.cxx
+++ b/embeddedobj/source/msole/olemisc.cxx
@@ -289,6 +289,15 @@ void OleEmbeddedObject::Dispose()
     }
 
     m_xParentStorage.clear();
+    m_xClientSite.clear();
+    m_xClosePreventer.clear();
+    m_xNewCachedVisRepl.clear();
+    m_xNewParentStorage.clear();
+    m_xNewObjectStream.clear();
+    m_xCachedVisualRepresentation.clear();
+    m_xWrappedObject.clear();
+    m_xParent.clear();
+    m_pOleComponent.clear();
 
     m_bDisposed = true;
 }
diff --git a/extensions/source/bibliography/framectr.cxx 
b/extensions/source/bibliography/framectr.cxx
index 9159e001eae0..758c8b3484c2 100644
--- a/extensions/source/bibliography/framectr.cxx
+++ b/extensions/source/bibliography/framectr.cxx
@@ -228,12 +228,15 @@ void BibFrameController_Impl::dispose()
 
     if (xFrame.is())
         xFrame->removeFrameActionListener( m_xImpl );
+    m_xFrame.clear();
 
     aObject.Source = static_cast<XController*>(this);
     m_xImpl->aLC.disposeAndClear(aObject);
     m_xDatMan.clear();
     m_aStatusListeners.clear();
     m_xLastQueriedFocusWin.clear();
+    m_xWindow.clear();
+    m_xImpl.clear();
 }
 
 void BibFrameController_Impl::addEventListener( const uno::Reference< 
lang::XEventListener > & aListener )
diff --git a/extensions/source/propctrlr/genericpropertyhandler.cxx 
b/extensions/source/propctrlr/genericpropertyhandler.cxx
index 54bfb31de359..cf359bc152d8 100644
--- a/extensions/source/propctrlr/genericpropertyhandler.cxx
+++ b/extensions/source/propctrlr/genericpropertyhandler.cxx
@@ -605,7 +605,22 @@ namespace pcr
             // at this handler instance
     }
 
-    IMPLEMENT_FORWARD_XCOMPONENT( GenericPropertyHandler, 
GenericPropertyHandler_Base );
+    void SAL_CALL GenericPropertyHandler::dispose(  )
+    {
+        GenericPropertyHandler_Base::WeakComponentImplHelperBase::dispose();
+        m_xComponentIntrospectionAccess.clear();
+        m_xComponent.clear();
+        m_xTypeConverter.clear();
+        m_xPropertyState.clear();
+    }
+    void SAL_CALL GenericPropertyHandler::addEventListener( const 
css::uno::Reference< css::lang::XEventListener >& Listener )
+    {
+        
GenericPropertyHandler_Base::WeakComponentImplHelperBase::addEventListener( 
Listener );
+    }
+    void SAL_CALL GenericPropertyHandler::removeEventListener( const 
css::uno::Reference< css::lang::XEventListener >& Listener )
+    {
+        
GenericPropertyHandler_Base::WeakComponentImplHelperBase::removeEventListener( 
Listener );
+    }
 
 }   // namespace pcr
 
diff --git a/extensions/source/propctrlr/propcontroller.cxx 
b/extensions/source/propctrlr/propcontroller.cxx
index 01a0395594f5..836f5844e38d 100644
--- a/extensions/source/propctrlr/propcontroller.cxx
+++ b/extensions/source/propctrlr/propcontroller.cxx
@@ -490,6 +490,9 @@ namespace pcr
 
         m_aInspectedObjects.clear();
         impl_bindToNewModel_nothrow( nullptr );
+        m_xModel.clear();
+        m_xInteractiveHandler.clear();
+        m_xFrame.clear();
     }
 
     void SAL_CALL OPropertyBrowserController::addEventListener( const 
Reference< XEventListener >& _rxListener )
diff --git a/extensions/source/propctrlr/propertyhandler.cxx 
b/extensions/source/propctrlr/propertyhandler.cxx
index 53cf29fc6f4c..1c58a6202b74 100644
--- a/extensions/source/propctrlr/propertyhandler.cxx
+++ b/extensions/source/propctrlr/propertyhandler.cxx
@@ -242,7 +242,22 @@ namespace pcr
         return true;
     }
 
-    IMPLEMENT_FORWARD_XCOMPONENT( PropertyHandler, PropertyHandler_Base )
+    void SAL_CALL PropertyHandler::dispose(  )
+    {
+        PropertyHandler_Base::WeakComponentImplHelperBase::dispose();
+        m_xComponent.clear();
+        m_xComponentPropertyInfo.clear();
+        m_xTypeConverter.clear();
+    }
+    void SAL_CALL PropertyHandler::addEventListener( const 
css::uno::Reference< css::lang::XEventListener >& Listener )
+    {
+        PropertyHandler_Base::WeakComponentImplHelperBase::addEventListener( 
Listener );
+    }
+    void SAL_CALL PropertyHandler::removeEventListener( const 
css::uno::Reference< css::lang::XEventListener >& Listener )
+    {
+        
PropertyHandler_Base::WeakComponentImplHelperBase::removeEventListener( 
Listener );
+    }
+
 
     void SAL_CALL PropertyHandler::disposing()
     {
diff --git a/extensions/source/propctrlr/sqlcommanddesign.cxx 
b/extensions/source/propctrlr/sqlcommanddesign.cxx
index 458dbd83153a..d98b2a569234 100644
--- a/extensions/source/propctrlr/sqlcommanddesign.cxx
+++ b/extensions/source/propctrlr/sqlcommanddesign.cxx
@@ -163,6 +163,8 @@ namespace pcr
         m_xConnection.clear();
         m_xContext.clear();
         m_xORB.clear();
+        m_xDesigner.clear();
+        m_xObjectAdapter.clear();
     }
 
 

Reply via email to