[Libreoffice-commits] core.git: chart2/source framework/source include/vcl scripting/Library_protocolhandler.mk sdext/CppunitTest_sdext_pdfimport.mk sdext/Executable_pdf2xml.mk sdext/Executable_pdfunzip.mk sdext/Library_pdfimport.mk vcl/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Dec 13 13:05:09 UTC 2016


 chart2/source/model/main/ChartModel.cxx                 |    2 --
 framework/source/dispatch/closedispatcher.cxx           |    1 -
 framework/source/layoutmanager/toolbarlayoutmanager.cxx |    1 -
 framework/source/loadenv/loadenv.cxx                    |    1 -
 framework/source/services/frame.cxx                     |    3 ---
 framework/source/uielement/menubarmanager.cxx           |    3 ---
 include/vcl/event.hxx                                   |    1 -
 include/vcl/vclreferencebase.hxx                        |    2 --
 scripting/Library_protocolhandler.mk                    |    1 -
 sdext/CppunitTest_sdext_pdfimport.mk                    |    1 -
 sdext/Executable_pdf2xml.mk                             |    1 -
 sdext/Executable_pdfunzip.mk                            |    1 -
 sdext/Library_pdfimport.mk                              |    1 -
 vcl/source/app/vclevent.cxx                             |   12 +++---------
 vcl/source/window/event.cxx                             |    7 -------
 vcl/source/window/menu.cxx                              |   16 +++-------------
 vcl/source/window/mouse.cxx                             |    3 ---
 17 files changed, 6 insertions(+), 51 deletions(-)

New commits:
commit 872cf486c542ae66bbf65e0270a642f4019df678
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Tue Dec 13 12:37:04 2016 +0200

    Revert "verify SolarMutex when ref-counting VclPtr" series
    
    This reverts the following commits:
    
        commit 722f4e1d86710f2facd37d7e040df9e1fd585e26
        tdf#104573 - Assertion failed: SolarMutex not locked
    
        commit f04ec99f5e6a543b8191ced61db4710c3c0de356
        tdf#104573 - Assertion failed: SolarMutex not locked
    
        commit 71b1e3ff6374c23e65200d3bcafca387d29af04f
        tdf#104573 - Assertion failed: SolarMutex not locked when trying
    
        commit e794ce1eef6730e5a46d5fb0aa6db2895ede85e7
        verify that we hold the SolarMutex when ref-counting VclPtr
    
    IRC discussion:
    <noelgrandin> sberg, maybe I should revert this whole "VclPtr assert" series, I don't have mental bandwidth to sort this out properly now
    <sberg> noelgrandin, what I fear is that you'll end up adding lots of SolarMutex locks to small places, where the proper fix would be to add it further out; and once such a dreaded recursive SolarMutex lock is in place (but needlessly so, once the proper fix is done), it's hard to clean that up again
    <noelgrandin> sberg, yeah, in that case I'll just remove all of this, leave it for another day
    
    Change-Id: Ie4f84b72b79a1b7e80164b5c7693af398c2c569a
    Reviewed-on: https://gerrit.libreoffice.org/31946
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index 9a4dfe2..72e6151 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -35,7 +35,6 @@
 #include <svx/charthelper.hxx>
 
 #include <vcl/openglwin.hxx>
-#include <vcl/svapp.hxx>
 
 #include <com/sun/star/chart/ChartDataRowSource.hpp>
 
@@ -1419,7 +1418,6 @@ void ChartModel::setWindow( const sal_uInt64 nWindowPtr )
     throw (uno::RuntimeException, std::exception)
 {
     OpenGLWindow* pWindow = reinterpret_cast<OpenGLWindow*>(nWindowPtr);
-    SolarMutexGuard aGuard;
     mpOpenGLWindow = pWindow;
 }
 
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
index 6d5b03b..afab7e8 100644
--- a/framework/source/dispatch/closedispatcher.cxx
+++ b/framework/source/dispatch/closedispatcher.cxx
@@ -71,7 +71,6 @@ CloseDispatcher::CloseDispatcher(const css::uno::Reference< css::uno::XComponent
     uno::Reference<awt::XWindow> xWindow = xTarget->getContainerWindow();
     if (xWindow.is())
     {
-        SolarMutexGuard g;
         VclPtr<vcl::Window> pWindow = VCLUnoHelper::GetWindow(xWindow);
         if (pWindow->IsSystemWindow())
             m_pSysWindow = dynamic_cast<SystemWindow*>(pWindow.get());
diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
index 385fcd4..f870b40 100644
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@ -2556,7 +2556,6 @@ void ToolbarLayoutManager::implts_calcWindowPosSizeOnSingleRowColumn(
             nCurrPos += ( aWinRect.Y - nCurrPos ) + aWinRect.Height;
         }
     }
-    pDockAreaWindow.clear(); // must be cleared under SolarMutex
 }
 
 void ToolbarLayoutManager::implts_setLayoutDirty()
diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx
index 012a7ba6..8e12882 100644
--- a/framework/source/loadenv/loadenv.cxx
+++ b/framework/source/loadenv/loadenv.cxx
@@ -1672,7 +1672,6 @@ void LoadEnv::impl_applyPersistentWindowState(const css::uno::Reference< css::aw
     WorkWindow* pWorkWindow = static_cast<WorkWindow*>(pWindow.get());
     if (pWorkWindow->IsMinimized())
         return;
-    pWindow.clear(); // must be cleared under SolarMutex
 
     aSolarGuard1.clear();
     // <- SOLAR SAFE
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index da5a346..09e5104 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -876,8 +876,6 @@ void SAL_CALL Frame::initialize( const css::uno::Reference< css::awt::XWindow >&
     VclPtr<vcl::Window> pWindow = VCLUnoHelper::GetWindow(xWindow);
     if (pWindow && pWindow->IsVisible())
         m_bIsHidden = false;
-    // must be cleared while under the SolarMutex
-    pWindow.clear();
 
     css::uno::Reference< css::frame::XLayoutManager2 >  xLayoutManager = m_xLayoutManager;
 
@@ -1544,7 +1542,6 @@ sal_Bool SAL_CALL Frame::setComponent(const css::uno::Reference< css::awt::XWind
     css::uno::Reference< css::frame::XController > xOldController = m_xController;
     VclPtr<vcl::Window> pOwnWindow = VCLUnoHelper::GetWindow( xContainerWindow );
     bool bHadFocus = pOwnWindow->HasChildPathFocus();
-    pOwnWindow.clear(); // must be cleared under SolarMutex
     bool bWasConnected = m_bConnected;
     aReadLock.clear();
     /* } SAFE */
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 066e2456..530df3e 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -222,9 +222,6 @@ MenuBarManager::~MenuBarManager()
     m_aAsyncSettingsTimer.Stop();
 
     SAL_WARN_IF( OWeakObject::m_refCount != 0, "fwk.uielement", "Who wants to delete an object with refcount > 0!" );
-
-    SolarMutexGuard aGuard;
-    m_pVCLMenu.clear();
 }
 
 void MenuBarManager::Destroy()
diff --git a/include/vcl/event.hxx b/include/vcl/event.hxx
index a5820c1..9737bac 100644
--- a/include/vcl/event.hxx
+++ b/include/vcl/event.hxx
@@ -317,7 +317,6 @@ public:
                             NotifyEvent( MouseNotifyEvent nEventType,
                                          vcl::Window* pWindow,
                                          const void* pEvent = nullptr );
-                            ~NotifyEvent();
 
     MouseNotifyEvent        GetType() const { return mnEventType; }
     vcl::Window*            GetWindow() const { return mpWindow; }
diff --git a/include/vcl/vclreferencebase.hxx b/include/vcl/vclreferencebase.hxx
index ce3e973..1813f86 100644
--- a/include/vcl/vclreferencebase.hxx
+++ b/include/vcl/vclreferencebase.hxx
@@ -35,14 +35,12 @@ class VCL_DLLPUBLIC VclReferenceBase
 public:
     inline void acquire() const
     {
-        DBG_TESTSOLARMUTEX();
         assert(mnRefCnt>0);
         mnRefCnt++;
     }
 
     inline void release() const
     {
-        DBG_TESTSOLARMUTEX();
         assert(mnRefCnt>0);
         if (!--mnRefCnt)
             delete this;
diff --git a/scripting/Library_protocolhandler.mk b/scripting/Library_protocolhandler.mk
index 15cf1e0..4134c2a 100644
--- a/scripting/Library_protocolhandler.mk
+++ b/scripting/Library_protocolhandler.mk
@@ -27,7 +27,6 @@ $(eval $(call gb_Library_use_libraries,protocolhandler,\
 	fwe \
 	sal \
 	sfx \
-	tl \
 	vcl \
 	$(gb_UWINAPI) \
 ))
diff --git a/sdext/CppunitTest_sdext_pdfimport.mk b/sdext/CppunitTest_sdext_pdfimport.mk
index 0676aaf..2642786 100644
--- a/sdext/CppunitTest_sdext_pdfimport.mk
+++ b/sdext/CppunitTest_sdext_pdfimport.mk
@@ -29,7 +29,6 @@ $(eval $(call gb_CppunitTest_use_libraries,sdext_pdfimport,\
     cppuhelper \
     sal \
     test \
-    tl \
     unotest \
 	$(gb_UWINAPI) \
 ))
diff --git a/sdext/Executable_pdf2xml.mk b/sdext/Executable_pdf2xml.mk
index add8262..373f40d 100644
--- a/sdext/Executable_pdf2xml.mk
+++ b/sdext/Executable_pdf2xml.mk
@@ -30,7 +30,6 @@ $(eval $(call gb_Executable_use_libraries,pdf2xml,\
     unotest \
     cppuhelper \
     sal \
-    tl \
 ))
 
 $(eval $(call gb_Executable_use_library_objects,pdf2xml,pdfimport))
diff --git a/sdext/Executable_pdfunzip.mk b/sdext/Executable_pdfunzip.mk
index 0004adf..74b1a96 100644
--- a/sdext/Executable_pdfunzip.mk
+++ b/sdext/Executable_pdfunzip.mk
@@ -28,7 +28,6 @@ $(eval $(call gb_Executable_use_libraries,pdfunzip,\
     cppuhelper \
     sal \
     vcl \
-    tl \
 ))
 
 $(eval $(call gb_Executable_use_library_objects,pdfunzip,pdfimport))
diff --git a/sdext/Library_pdfimport.mk b/sdext/Library_pdfimport.mk
index 411c047..d181ae1 100644
--- a/sdext/Library_pdfimport.mk
+++ b/sdext/Library_pdfimport.mk
@@ -27,7 +27,6 @@ $(eval $(call gb_Library_use_libraries,pdfimport,\
     cppu \
     cppuhelper \
     sal \
-    tl \
 ))
 
 $(eval $(call gb_Library_use_externals,pdfimport,\
diff --git a/vcl/source/app/vclevent.cxx b/vcl/source/app/vclevent.cxx
index 4fec056..2cab94c 100644
--- a/vcl/source/app/vclevent.cxx
+++ b/vcl/source/app/vclevent.cxx
@@ -92,17 +92,11 @@ VclWindowEvent::VclWindowEvent( vcl::Window* pWin, VclEventId n, void* pDat ) :
 VclWindowEvent::~VclWindowEvent() {}
 
 VclMenuEvent::VclMenuEvent( Menu* pM, VclEventId n, sal_uInt16 nPos )
-    : VclSimpleEvent(n), mnPos(nPos)
-{
-    SolarMutexGuard aGuard;
-    pMenu = pM;
-}
+    : VclSimpleEvent(n), pMenu(pM), mnPos(nPos)
+{}
 
 VclMenuEvent::~VclMenuEvent()
-{
-    SolarMutexGuard aGuard;
-    pMenu.clear();
-}
+{}
 
 Menu* VclMenuEvent::GetMenu() const
 {
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 8feb212..e8bb662 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -652,16 +652,9 @@ void Window::ImplCallFocusChangeActivate( vcl::Window* pNewOverlapWindow,
 NotifyEvent::NotifyEvent( MouseNotifyEvent nEventType, vcl::Window* pWindow,
                           const void* pEvent )
 {
-    SolarMutexGuard aVclGuard;
     mpWindow    = pWindow;
     mpData      = const_cast<void*>(pEvent);
     mnEventType  = nEventType;
 }
 
-NotifyEvent::~NotifyEvent()
-{
-    SolarMutexGuard aVclGuard;
-    mpWindow.clear();
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 90bd8af..00b931e 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -1407,7 +1407,6 @@ void Menu::ImplAddDel( ImplMenuDelData& rDel )
     SAL_WARN_IF( rDel.mpMenu, "vcl", "Menu::ImplAddDel(): cannot add ImplMenuDelData twice !" );
     if( !rDel.mpMenu )
     {
-        SolarMutexGuard aGuard;
         rDel.mpMenu = this;
         rDel.mpNext = mpFirstDel;
         mpFirstDel = &rDel;
@@ -1416,10 +1415,7 @@ void Menu::ImplAddDel( ImplMenuDelData& rDel )
 
 void Menu::ImplRemoveDel( ImplMenuDelData& rDel )
 {
-    {
-        SolarMutexGuard aGuard;
-        rDel.mpMenu = nullptr;
-    }
+    rDel.mpMenu = nullptr;
     if ( mpFirstDel == &rDel )
     {
         mpFirstDel = rDel.mpNext;
@@ -2605,10 +2601,7 @@ bool Menu::HandleMenuActivateEvent( Menu *pMenu ) const
     {
         ImplMenuDelData aDelData( this );
 
-        {
-            SolarMutexGuard aGuard;
-            pMenu->pStartedFrom = const_cast<Menu*>(this);
-        }
+        pMenu->pStartedFrom = const_cast<Menu*>(this);
         pMenu->bInCallback = true;
         pMenu->Activate();
 
@@ -2624,10 +2617,7 @@ bool Menu::HandleMenuDeActivateEvent( Menu *pMenu ) const
     {
         ImplMenuDelData aDelData( this );
 
-        {
-            SolarMutexGuard aGuard;
-            pMenu->pStartedFrom = const_cast<Menu*>(this);
-        }
+        pMenu->pStartedFrom = const_cast<Menu*>(this);
         pMenu->bInCallback = true;
         pMenu->Deactivate();
         if( !aDelData.isDeleted() )
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index b769a83..d1cc051 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -161,10 +161,7 @@ void Window::ImplCallMouseMove( sal_uInt16 nMouseCode, bool bModChanged )
 void Window::ImplGenerateMouseMove()
 {
     if ( !mpWindowImpl->mpFrameData->mnMouseMoveId )
-    {
-        SolarMutexGuard aVclGuard;
         mpWindowImpl->mpFrameData->mnMouseMoveId = Application::PostUserEvent( LINK( mpWindowImpl->mpFrameWindow, Window, ImplGenerateMouseMoveHdl ), nullptr, true );
-    }
 }
 
 IMPL_LINK_NOARG(Window, ImplGenerateMouseMoveHdl, void*, void)


More information about the Libreoffice-commits mailing list