diff options
-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/vclreferencebase.hxx | 3 | ||||
-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 |
12 files changed, 19 insertions, 0 deletions
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 6d3b8174c174..b9f59a9fbe70 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -35,6 +35,7 @@ #include <svx/charthelper.hxx> #include <vcl/openglwin.hxx> +#include <vcl/svapp.hxx> #include <com/sun/star/chart/ChartDataRowSource.hpp> @@ -1425,6 +1426,7 @@ 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 afab7e871798..6d5b03b8b2d5 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -71,6 +71,7 @@ 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 eefd7dc1374e..4db5ca56b30b 100644 --- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx +++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx @@ -2554,6 +2554,7 @@ 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 8e1288269ede..012a7ba66e9e 100644 --- a/framework/source/loadenv/loadenv.cxx +++ b/framework/source/loadenv/loadenv.cxx @@ -1672,6 +1672,7 @@ 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 09e5104652f6..da5a346e02f9 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -876,6 +876,8 @@ 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; @@ -1542,6 +1544,7 @@ 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 530df3e77fcd..066e245674fb 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -222,6 +222,9 @@ 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/vclreferencebase.hxx b/include/vcl/vclreferencebase.hxx index 7713d9318d39..dbd3bc9ae1ae 100644 --- a/include/vcl/vclreferencebase.hxx +++ b/include/vcl/vclreferencebase.hxx @@ -21,6 +21,7 @@ #include <vcl/dllapi.h> #include <vcl/vclptr.hxx> +#include <tools/debug.hxx> #include <cassert> class VclReferenceBase; @@ -35,12 +36,14 @@ 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 4134c2a55be8..15cf1e03584c 100644 --- a/scripting/Library_protocolhandler.mk +++ b/scripting/Library_protocolhandler.mk @@ -27,6 +27,7 @@ $(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 2642786e0385..0676aaf8746c 100644 --- a/sdext/CppunitTest_sdext_pdfimport.mk +++ b/sdext/CppunitTest_sdext_pdfimport.mk @@ -29,6 +29,7 @@ $(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 373f40da36fd..add826244601 100644 --- a/sdext/Executable_pdf2xml.mk +++ b/sdext/Executable_pdf2xml.mk @@ -30,6 +30,7 @@ $(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 74b1a964b0f1..0004adf52391 100644 --- a/sdext/Executable_pdfunzip.mk +++ b/sdext/Executable_pdfunzip.mk @@ -28,6 +28,7 @@ $(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 d181ae15682a..411c04729a56 100644 --- a/sdext/Library_pdfimport.mk +++ b/sdext/Library_pdfimport.mk @@ -27,6 +27,7 @@ $(eval $(call gb_Library_use_libraries,pdfimport,\ cppu \ cppuhelper \ sal \ + tl \ )) $(eval $(call gb_Library_use_externals,pdfimport,\ |