summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-03-18 14:50:04 +0100
committerStephan Bergmann <sbergman@redhat.com>2014-03-18 15:27:07 +0100
commit309eba8c5d1d1c86aeba1122d3ad62e68e3deee5 (patch)
treec6a8c1979df630a02175be1f01bab4806868df9f
parent90cee97bc98ea82cbbc3985b1ae68cb19088a734 (diff)
Use SolarMutexGuard directly
Change-Id: I4b902ac0f23d1b7e697dfec0ba31e6f396059a49
-rw-r--r--framework/inc/helper/tagwindowasmodified.hxx9
-rw-r--r--framework/source/helper/tagwindowasmodified.cxx81
2 files changed, 36 insertions, 54 deletions
diff --git a/framework/inc/helper/tagwindowasmodified.hxx b/framework/inc/helper/tagwindowasmodified.hxx
index 8966a89a88ad..62298b4a1818 100644
--- a/framework/inc/helper/tagwindowasmodified.hxx
+++ b/framework/inc/helper/tagwindowasmodified.hxx
@@ -20,7 +20,6 @@
#ifndef INCLUDED_FRAMEWORK_INC_HELPER_TAGWINDOWASMODIFIED_HXX
#define INCLUDED_FRAMEWORK_INC_HELPER_TAGWINDOWASMODIFIED_HXX
-#include <threadhelp/threadhelpbase.hxx>
#include <macros/xinterface.hxx>
#include <macros/xtypeprovider.hxx>
#include <general.h>
@@ -41,19 +40,13 @@ namespace framework{
@descr Used e.g. by our MAC port where such state is shown separately on some controls of the
title bar.
- @base ThreadHelpBase
- guarantee right initialized lock member during startup of instances of this class.
-
@base OWeakObject
implements ref counting for this class.
@devstatus draft
@threadsafe yes
*//*-*************************************************************************************************************/
-class TagWindowAsModified : // baseclasses (order necessary for right initialization!)
- private ThreadHelpBase,
- // interfaces
- public ::cppu::WeakImplHelper3<
+class TagWindowAsModified : public ::cppu::WeakImplHelper3<
css::lang::XInitialization,
css::frame::XFrameActionListener, // => XEventListener
css::util::XModifyListener > // => XEventListener
diff --git a/framework/source/helper/tagwindowasmodified.cxx b/framework/source/helper/tagwindowasmodified.cxx
index b0c68bc6ca35..6b08215b919e 100644
--- a/framework/source/helper/tagwindowasmodified.cxx
+++ b/framework/source/helper/tagwindowasmodified.cxx
@@ -19,7 +19,6 @@
#include <helper/tagwindowasmodified.hxx>
#include <pattern/window.hxx>
-#include <threadhelp/guard.hxx>
#include <macros/generic.hxx>
#include <services.h>
@@ -43,7 +42,6 @@ namespace framework{
TagWindowAsModified::TagWindowAsModified()
- : ThreadHelpBase (&Application::GetSolarMutex())
{
}
@@ -65,11 +63,10 @@ void SAL_CALL TagWindowAsModified::initialize(const css::uno::Sequence< css::uno
if ( ! xFrame.is ())
return;
- // SAFE -> ----------------------------------
- Guard aWriteLock(m_aLock);
- m_xFrame = xFrame ;
- aWriteLock.unlock();
- // <- SAFE ----------------------------------
+ {
+ SolarMutexGuard g;
+ m_xFrame = xFrame ;
+ }
xFrame->addFrameActionListener(this);
impl_update (xFrame);
@@ -79,20 +76,19 @@ void SAL_CALL TagWindowAsModified::initialize(const css::uno::Sequence< css::uno
void SAL_CALL TagWindowAsModified::modified(const css::lang::EventObject& aEvent)
throw(css::uno::RuntimeException, std::exception)
{
- // SAFE -> ----------------------------------
- Guard aReadLock(m_aLock);
-
- css::uno::Reference< css::util::XModifiable > xModel (m_xModel.get (), css::uno::UNO_QUERY);
- css::uno::Reference< css::awt::XWindow > xWindow(m_xWindow.get(), css::uno::UNO_QUERY);
- if (
- ( ! xModel.is () ) ||
- ( ! xWindow.is () ) ||
- (aEvent.Source != xModel)
- )
- return;
-
- aReadLock.unlock();
- // <- SAFE ----------------------------------
+ css::uno::Reference< css::util::XModifiable > xModel;
+ css::uno::Reference< css::awt::XWindow > xWindow;
+ {
+ SolarMutexGuard g;
+ xModel.set(m_xModel.get (), css::uno::UNO_QUERY);
+ xWindow.set(m_xWindow.get(), css::uno::UNO_QUERY);
+ if (
+ ( ! xModel.is () ) ||
+ ( ! xWindow.is () ) ||
+ (aEvent.Source != xModel)
+ )
+ return;
+ }
::sal_Bool bModified = xModel->isModified ();
@@ -125,18 +121,16 @@ void SAL_CALL TagWindowAsModified::frameAction(const css::frame::FrameActionEven
)
return;
- // SAFE -> ----------------------------------
- Guard aWriteLock(m_aLock);
-
- css::uno::Reference< css::frame::XFrame > xFrame(m_xFrame.get(), css::uno::UNO_QUERY);
- if (
- ( ! xFrame.is () ) ||
- (aEvent.Source != xFrame)
- )
- return;
-
- aWriteLock.unlock();
- // <- SAFE ----------------------------------
+ css::uno::Reference< css::frame::XFrame > xFrame;
+ {
+ SolarMutexGuard g;
+ xFrame.set(m_xFrame.get(), css::uno::UNO_QUERY);
+ if (
+ ( ! xFrame.is () ) ||
+ (aEvent.Source != xFrame)
+ )
+ return;
+ }
impl_update (xFrame);
}
@@ -145,8 +139,7 @@ void SAL_CALL TagWindowAsModified::frameAction(const css::frame::FrameActionEven
void SAL_CALL TagWindowAsModified::disposing(const css::lang::EventObject& aEvent)
throw(css::uno::RuntimeException, std::exception)
{
- // SAFE -> ----------------------------------
- Guard aWriteLock(m_aLock);
+ SolarMutexGuard g;
css::uno::Reference< css::frame::XFrame > xFrame(m_xFrame.get(), css::uno::UNO_QUERY);
if (
@@ -167,9 +160,6 @@ void SAL_CALL TagWindowAsModified::disposing(const css::lang::EventObject& aEven
m_xModel = css::uno::Reference< css::frame::XModel >();
return;
}
-
- aWriteLock.unlock();
- // <- SAFE ----------------------------------
}
@@ -190,14 +180,13 @@ void TagWindowAsModified::impl_update (const css::uno::Reference< css::frame::XF
)
return;
- // SAFE -> ----------------------------------
- Guard aWriteLock(m_aLock);
- // Note: frame was set as member outside ! we have to refresh connections
- // regarding window and model only here.
- m_xWindow = xWindow;
- m_xModel = xModel ;
- aWriteLock.unlock();
- // <- SAFE ----------------------------------
+ {
+ SolarMutexGuard g;
+ // Note: frame was set as member outside ! we have to refresh connections
+ // regarding window and model only here.
+ m_xWindow = xWindow;
+ m_xModel = xModel ;
+ }
css::uno::Reference< css::util::XModifyBroadcaster > xModifiable(xModel, css::uno::UNO_QUERY);
if (xModifiable.is ())