summaryrefslogtreecommitdiff
path: root/winaccessibility/source/service/msaaservice_impl.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-11-19 20:12:23 +0100
committerMichael Stahl <mstahl@redhat.com>2013-11-20 01:33:42 +0100
commit3e1c7d12eeefdfc50b842fe34f3db657292359b9 (patch)
treeede628029df8a2a9aba9eece4f6876a6ffc2b371 /winaccessibility/source/service/msaaservice_impl.cxx
parented750424f7c02b0ae868f33731f90885a4946f47 (diff)
winaccessibility: replace mysterious and inexplicable locking strategy
Do the conservative thing and lock the SolarMutex at every UNO API entry point. Change-Id: I51afffada975df7ee3435784aa050a2c19cd0ac8
Diffstat (limited to 'winaccessibility/source/service/msaaservice_impl.cxx')
-rw-r--r--winaccessibility/source/service/msaaservice_impl.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/winaccessibility/source/service/msaaservice_impl.cxx b/winaccessibility/source/service/msaaservice_impl.cxx
index f5bf0fc2185e..6b27c9a913fc 100644
--- a/winaccessibility/source/service/msaaservice_impl.cxx
+++ b/winaccessibility/source/service/msaaservice_impl.cxx
@@ -114,6 +114,8 @@ void MSAAServiceImpl::initialize( Sequence< Any > const & args ) throw (Exceptio
*/
sal_Int32 MSAAServiceImpl::getAccObjectPtr ( long hWnd, long lParam, long wParam) throw (RuntimeException)
{
+ SolarMutexGuard g;
+
return GetMSComPtr( hWnd, lParam, wParam );
}
@@ -125,6 +127,8 @@ sal_Int32 MSAAServiceImpl::getAccObjectPtr ( long hWnd, long lParam, long wParam
*/
void MSAAServiceImpl::handleWindowOpened( sal_Int32 nAcc)
{
+ SolarMutexGuard g;
+
SAL_INFO( "iacc2", "Window opened " << nAcc );
handleWindowOpened_impl( nAcc );
}
@@ -308,6 +312,8 @@ MSAAServiceImpl::~MSAAServiceImpl()
void MSAAServiceImpl::dispose()
{
+ SolarMutexGuard g;
+
// As all folders and streams contain references to their parents,
// we must remove these references so that they will be deleted when
// the hash_map of the root folder is cleared, releasing all subfolders