diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-12-13 12:37:04 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-12-13 13:04:34 +0000 |
commit | 872cf486c542ae66bbf65e0270a642f4019df678 (patch) | |
tree | bfdb76b2cd07327895888efb0aa4834916714dcc | |
parent | b252dbf59dc1466a2ef45e9905334718e587e5c9 (diff) |
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@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | chart2/source/model/main/ChartModel.cxx | 2 | ||||
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 1 | ||||
-rw-r--r-- | framework/source/layoutmanager/toolbarlayoutmanager.cxx | 1 | ||||
-rw-r--r-- | framework/source/loadenv/loadenv.cxx | 1 | ||||
-rw-r--r-- | framework/source/services/frame.cxx | 3 | ||||
-rw-r--r-- | framework/source/uielement/menubarmanager.cxx | 3 | ||||
-rw-r--r-- | include/vcl/event.hxx | 1 | ||||
-rw-r--r-- | include/vcl/vclreferencebase.hxx | 2 | ||||
-rw-r--r-- | scripting/Library_protocolhandler.mk | 1 | ||||
-rw-r--r-- | sdext/CppunitTest_sdext_pdfimport.mk | 1 | ||||
-rw-r--r-- | sdext/Executable_pdf2xml.mk | 1 | ||||
-rw-r--r-- | sdext/Executable_pdfunzip.mk | 1 | ||||
-rw-r--r-- | sdext/Library_pdfimport.mk | 1 | ||||
-rw-r--r-- | vcl/source/app/vclevent.cxx | 12 | ||||
-rw-r--r-- | vcl/source/window/event.cxx | 7 | ||||
-rw-r--r-- | vcl/source/window/menu.cxx | 16 | ||||
-rw-r--r-- | vcl/source/window/mouse.cxx | 3 |
17 files changed, 6 insertions, 51 deletions
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 9a4dfe2a115c..72e61517680d 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 6d5b03b8b2d5..afab7e871798 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 385fcd4dcc21..f870b40f29b7 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 012a7ba66e9e..8e1288269ede 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 da5a346e02f9..09e5104652f6 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 066e245674fb..530df3e77fcd 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 a5820c10278c..9737bac576ec 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 ce3e973dac8c..1813f866ade3 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 15cf1e03584c..4134c2a55be8 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 0676aaf8746c..2642786e0385 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 add826244601..373f40da36fd 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 0004adf52391..74b1a964b0f1 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 411c04729a56..d181ae15682a 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 4fec056aeb00..2cab94c4561e 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 8feb212cc1b8..e8bb662355ed 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 90bd8af3b1a2..00b931e32ba9 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 b769a8356778..d1cc051721bc 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) |