diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-06-17 15:18:10 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2015-06-18 13:10:46 +0200 |
commit | 8aac888a3bd933a2c67d0104077c5ec9fee448c5 (patch) | |
tree | cff449a72d880dcdb1ecdc4e2bbdedd31164c3fb /framework | |
parent | 1a1d15b422bc9bb787f939c28e520ca23debe28b (diff) |
Some missing SolarMutexGuard around VclPtr acquire/release
At least OutputDevice::acquire/release use a plain unguarded int and ++, --, so
apparently rely on the SolarMutex being locked whenever they are called. Fixed
those places that caused "make check" to fail for me when temporarily adding
DBG_TESTSOLARMUTEX() to OutputDevice::acquire/release. (A recurring pattern is
that a class fails to ensure the SolarMutex is locked around the destruction of
non-null VclPtr members.)
Change-Id: I77cba6f3908f2de1b516ce28f1c3c43b3f57a9c5
(cherry picked from commit 8e1ad966262932516b3368d9b5c44becb29524d4)
Signed-off-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 1 | ||||
-rw-r--r-- | framework/source/layoutmanager/layoutmanager.cxx | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx index 9548861a41ee..9bfd5588654c 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -80,6 +80,7 @@ CloseDispatcher::~CloseDispatcher() { SolarMutexGuard g; m_aAsyncCallback.reset(); + m_pSysWindow.reset(); } void SAL_CALL CloseDispatcher::dispatch(const css::util::URL& aURL , diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx index 9f0b811f6668..d0c3e24c7155 100644 --- a/framework/source/layoutmanager/layoutmanager.cxx +++ b/framework/source/layoutmanager/layoutmanager.cxx @@ -2118,6 +2118,7 @@ throw (RuntimeException, std::exception) Reference< awt::XWindow > xWindow( m_aStatusBarElement.m_xUIElement->getRealInterface(), UNO_QUERY ); if ( xWindow.is() ) { + SolarMutexGuard g; vcl::Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); if ( pWindow && pWindow->IsVisible() ) return sal_True; |