summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-06-17 15:18:10 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-06-17 15:24:19 +0200
commit8e1ad966262932516b3368d9b5c44becb29524d4 (patch)
tree4dbee378e3376712011631734195886fb41404e2 /framework
parent0f5b7dfea974c21b48843c3cbf7fdf344ad54a3a (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
Diffstat (limited to 'framework')
-rw-r--r--framework/source/dispatch/closedispatcher.cxx1
-rw-r--r--framework/source/layoutmanager/layoutmanager.cxx1
2 files changed, 2 insertions, 0 deletions
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
index 47c9cf16d603..2e0cdb1fc46c 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 4af01f743ba2..715567385052 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -2115,6 +2115,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;