Remove VCLExternalSolarLock and IMutex.

Next step is to remove OContextEntryGuard.

Change-Id: I9460fb67fba6f3bfb3c809b730c33f38d225a64e
Reviewed-on: https://gerrit.libreoffice.org/38411
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/accessibility/inc/extended/accessibletabbarbase.hxx b/accessibility/inc/extended/accessibletabbarbase.hxx
index d2d6ab8..8fd28dc 100644
--- a/accessibility/inc/extended/accessibletabbarbase.hxx
+++ b/accessibility/inc/extended/accessibletabbarbase.hxx
@@ -23,10 +23,8 @@
#include <comphelper/accessiblecomponenthelper.hxx>
#include <tools/link.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

class TabBar;
class VCLExternalSolarLock;
class VclSimpleEvent;
class VclWindowEvent;

@@ -34,8 +32,7 @@ class VclWindowEvent;
namespace accessibility
{

class AccessibleTabBarBase : private BaseVCLExternalSolarLock,
                             public comphelper::OAccessibleExtendedComponentHelper
class AccessibleTabBarBase : public comphelper::OAccessibleExtendedComponentHelper
{
public:
    explicit            AccessibleTabBarBase( TabBar* pTabBar );
diff --git a/accessibility/inc/pch/precompiled_acc.hxx b/accessibility/inc/pch/precompiled_acc.hxx
index a6a9287..bebb30a 100644
--- a/accessibility/inc/pch/precompiled_acc.hxx
+++ b/accessibility/inc/pch/precompiled_acc.hxx
@@ -303,7 +303,6 @@
#include <toolkit/awt/vclxwindows.hxx>
#include <toolkit/dllapi.h>
#include <toolkit/helper/convert.hxx>
#include <toolkit/helper/externallock.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/color.hxx>
#include <tools/contnr.hxx>
diff --git a/accessibility/inc/standard/accessiblemenubasecomponent.hxx b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
index 96fa054..2447b0d 100644
--- a/accessibility/inc/standard/accessiblemenubasecomponent.hxx
+++ b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
@@ -27,7 +27,6 @@
#include <cppuhelper/implbase2.hxx>
#include <tools/link.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

#include <vector>

@@ -46,8 +45,7 @@ typedef ::cppu::ImplHelper2<
    css::accessibility::XAccessible,
    css::lang::XServiceInfo > OAccessibleMenuBaseComponent_BASE;

class OAccessibleMenuBaseComponent : private BaseVCLExternalSolarLock,
                                     public comphelper::OAccessibleExtendedComponentHelper,
class OAccessibleMenuBaseComponent : public comphelper::OAccessibleExtendedComponentHelper,
                                     public OAccessibleMenuBaseComponent_BASE
{
    friend class OAccessibleMenuItemComponent;
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
index 163fd66..47cb8ba 100644
--- a/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
+++ b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
@@ -25,7 +25,6 @@
#include <comphelper/accessibletexthelper.hxx>
#include <cppuhelper/implbase2.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

class StatusBar;

@@ -43,8 +42,7 @@ typedef ::cppu::ImplHelper2<
    css::accessibility::XAccessible,
    css::lang::XServiceInfo > VCLXAccessibleStatusBarItem_BASE;

class VCLXAccessibleStatusBarItem : private BaseVCLExternalSolarLock,
                                    public AccessibleTextHelper_BASE,
class VCLXAccessibleStatusBarItem : public AccessibleTextHelper_BASE,
                                    public VCLXAccessibleStatusBarItem_BASE
{
    friend class VCLXAccessibleStatusBar;
diff --git a/accessibility/inc/standard/vclxaccessibletabpage.hxx b/accessibility/inc/standard/vclxaccessibletabpage.hxx
index 830e45d..66a2fbc 100644
--- a/accessibility/inc/standard/vclxaccessibletabpage.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabpage.hxx
@@ -25,7 +25,6 @@
#include <comphelper/accessibletexthelper.hxx>
#include <cppuhelper/implbase2.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>


class TabControl;
@@ -44,8 +43,7 @@ typedef ::cppu::ImplHelper2<
    css::accessibility::XAccessible,
    css::lang::XServiceInfo > VCLXAccessibleTabPage_BASE;

class VCLXAccessibleTabPage :   private BaseVCLExternalSolarLock,
                                public AccessibleTextHelper_BASE,
class VCLXAccessibleTabPage :   public AccessibleTextHelper_BASE,
                                public VCLXAccessibleTabPage_BASE
{
    friend class VCLXAccessibleTabControl;
diff --git a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
index 47bb3c3..fd455b0 100644
--- a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
+++ b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
@@ -31,7 +31,6 @@
#include <cppuhelper/implbase4.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>


class ToolBox;
@@ -42,8 +41,7 @@ typedef ::cppu::ImplHelper4 < css::accessibility::XAccessible,
                              css::accessibility::XAccessibleValue,
                              css::lang::XServiceInfo > VCLXAccessibleToolBoxItem_BASE;

class VCLXAccessibleToolBoxItem : private BaseVCLExternalSolarLock,
                                  public AccessibleTextHelper_BASE,
class VCLXAccessibleToolBoxItem : public AccessibleTextHelper_BASE,
                                  public VCLXAccessibleToolBoxItem_BASE
{
private:
diff --git a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
index 5c21f93..f33ab49 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
@@ -26,6 +26,7 @@
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>


using ::com::sun::star::uno::Reference;
diff --git a/accessibility/source/extended/accessibletabbarbase.cxx b/accessibility/source/extended/accessibletabbarbase.cxx
index 12f7418..e1cec85 100644
--- a/accessibility/source/extended/accessibletabbarbase.cxx
+++ b/accessibility/source/extended/accessibletabbarbase.cxx
@@ -29,7 +29,6 @@ namespace accessibility


AccessibleTabBarBase::AccessibleTabBarBase( TabBar* pTabBar ) :
    OAccessibleExtendedComponentHelper( &m_aLock ),
    m_pTabBar( nullptr )
{
    SetTabBarPointer( pTabBar );
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index 78cd8f2..3221189 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -703,7 +703,7 @@ Document::Document(::VCLXWindow * pVclXWindow, ::TextEngine & rEngine,

css::lang::Locale Document::retrieveLocale()
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    return m_rEngine.GetLocale();
}

@@ -760,7 +760,7 @@ css::awt::Rectangle
Document::retrieveParagraphBounds(Paragraph const * pParagraph,
                                  bool bAbsolute)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());

    // If a client holds on to a Paragraph that is no longer visible (as it
@@ -799,7 +799,7 @@ Document::retrieveParagraphBounds(Paragraph const * pParagraph,
OUString
Document::retrieveParagraphText(Paragraph const * pParagraph)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    return m_rEngine.GetText(static_cast< ::sal_uLong >(pParagraph->getNumber()));
        // numeric overflow cannot happen here
@@ -809,7 +809,7 @@ void Document::retrieveParagraphSelection(Paragraph const * pParagraph,
                                          ::sal_Int32 * pBegin,
                                          ::sal_Int32 * pEnd)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    ::TextSelection const & rSelection = m_rView.GetSelection();
    Paragraphs::size_type nNumber = pParagraph->getNumber();
@@ -839,7 +839,7 @@ void Document::retrieveParagraphSelection(Paragraph const * pParagraph,

::sal_Int32 Document::retrieveParagraphCaretPosition(Paragraph const * pParagraph)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    ::TextSelection const & rSelection = m_rView.GetSelection();
    Paragraphs::size_type nNumber = pParagraph->getNumber();
@@ -852,7 +852,7 @@ css::awt::Rectangle
Document::retrieveCharacterBounds(Paragraph const * pParagraph,
                                  ::sal_Int32 nIndex)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
    sal_Int32 nLength = m_rEngine.GetText(nNumber).getLength();
@@ -898,7 +898,7 @@ Document::retrieveCharacterBounds(Paragraph const * pParagraph,
::sal_Int32 Document::retrieveCharacterIndex(Paragraph const * pParagraph,
                                             css::awt::Point const & rPoint)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
        // XXX  numeric overflow
@@ -927,7 +927,7 @@ Document::retrieveCharacterAttributes(
    Paragraph const * pParagraph, ::sal_Int32 nIndex,
    const css::uno::Sequence< OUString >& aRequestedAttributes)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;

    vcl::Font aFont = m_rEngine.GetFont();
    const sal_Int32 AttributeCount = 9;
@@ -1075,7 +1075,7 @@ Document::retrieveDefaultAttributes(
    Paragraph const * pParagraph,
    const css::uno::Sequence< OUString >& RequestedAttributes)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard( GetMutex() );

    tPropValMap aDefAttrSeq;
@@ -1141,7 +1141,7 @@ Document::retrieveRunAttributes(
    Paragraph const * pParagraph, ::sal_Int32 Index,
    const css::uno::Sequence< OUString >& RequestedAttributes)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard( GetMutex() );
    ::sal_uLong nNumber = static_cast< ::sal_uLong >( pParagraph->getNumber() );
        // XXX  numeric overflow
@@ -1159,7 +1159,7 @@ Document::retrieveRunAttributes(
void Document::changeParagraphText(Paragraph * pParagraph,
                                   OUString const & rText)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard(GetMutex());
        ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
@@ -1174,7 +1174,7 @@ void Document::changeParagraphText(Paragraph * pParagraph,
                                   bool bCut, bool bPaste,
                                   OUString const & rText)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard(GetMutex());
        ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
@@ -1194,7 +1194,7 @@ void Document::changeParagraphText(Paragraph * pParagraph,
void Document::copyParagraphText(Paragraph const * pParagraph,
                                 ::sal_Int32 nBegin, ::sal_Int32 nEnd)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard(GetMutex());
        ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
@@ -1217,7 +1217,7 @@ void Document::changeParagraphAttributes(
    Paragraph * pParagraph, ::sal_Int32 nBegin, ::sal_Int32 nEnd,
    css::uno::Sequence< css::beans::PropertyValue > const & rAttributeSet)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard(GetMutex());
        ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
@@ -1249,7 +1249,7 @@ void Document::changeParagraphAttributes(
void Document::changeParagraphSelection(Paragraph * pParagraph,
                                        ::sal_Int32 nBegin, ::sal_Int32 nEnd)
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard(GetMutex());
        ::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
@@ -1275,7 +1275,7 @@ Document::retrieveParagraphLineBoundary( Paragraph const * pParagraph,
    aBoundary.startPos = nIndex;
    aBoundary.endPos = nIndex;

    ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard( GetMutex() );
        ::sal_uLong nNumber = static_cast< ::sal_uLong >( pParagraph->getNumber() );
@@ -1313,7 +1313,7 @@ Document::retrieveParagraphBoundaryOfLine( Paragraph const * pParagraph,
    aBoundary.startPos = 0;
    aBoundary.endPos = 0;

    ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
    SolarMutexGuard aGuard;
    {
        ::osl::MutexGuard aInternalGuard( GetMutex() );
        ::sal_uLong nNumber = static_cast< ::sal_uLong >( pParagraph->getNumber() );
@@ -1339,7 +1339,7 @@ Document::retrieveParagraphBoundaryOfLine( Paragraph const * pParagraph,

sal_Int32 Document::retrieveParagraphLineWithCursor( Paragraph const * pParagraph )
{
    ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
    SolarMutexGuard aGuard;
    ::osl::MutexGuard aInternalGuard(GetMutex());
    ::TextSelection const & rSelection = m_rView.GetSelection();
    Paragraphs::size_type nNumber = pParagraph->getNumber();
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx b/accessibility/source/standard/accessiblemenubasecomponent.cxx
index b3ee388..5aae312 100644
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ b/accessibility/source/standard/accessiblemenubasecomponent.cxx
@@ -43,8 +43,7 @@ using namespace ::comphelper;


OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent( Menu* pMenu )
    :OAccessibleExtendedComponentHelper( &m_aLock )
    ,m_pMenu( pMenu )
    :m_pMenu( pMenu )
    ,m_bEnabled( false )
    ,m_bFocused( false )
    ,m_bVisible( false )
diff --git a/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
index 3a50c75..0b462f7 100644
--- a/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
+++ b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
@@ -48,8 +48,7 @@ using namespace ::comphelper;


VCLXAccessibleStatusBarItem::VCLXAccessibleStatusBarItem( StatusBar* pStatusBar, sal_uInt16 nItemId )
    :AccessibleTextHelper_BASE( &m_aLock )
    ,m_pStatusBar( pStatusBar )
    :m_pStatusBar( pStatusBar )
    ,m_nItemId( nItemId )
{

diff --git a/accessibility/source/standard/vclxaccessibletabpage.cxx b/accessibility/source/standard/vclxaccessibletabpage.cxx
index 954b471..8fc4030 100644
--- a/accessibility/source/standard/vclxaccessibletabpage.cxx
+++ b/accessibility/source/standard/vclxaccessibletabpage.cxx
@@ -48,8 +48,7 @@ using namespace ::comphelper;


VCLXAccessibleTabPage::VCLXAccessibleTabPage( TabControl* pTabControl, sal_uInt16 nPageId )
    :AccessibleTextHelper_BASE( &m_aLock )
    ,m_pTabControl( pTabControl )
    :m_pTabControl( pTabControl )
    ,m_nPageId( nPageId )
{
    m_bFocused  = IsFocused();
diff --git a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
index 93e2c82..325db82 100644
--- a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
@@ -59,8 +59,6 @@ using namespace ::comphelper;
// Ctor() and Dtor()

VCLXAccessibleToolBoxItem::VCLXAccessibleToolBoxItem( ToolBox* _pToolBox, sal_Int32 _nPos ) :
    AccessibleTextHelper_BASE( &m_aLock ),

    m_pToolBox      ( _pToolBox ),
    m_nIndexInParent( _nPos ),
    m_nRole         ( AccessibleRole::PUSH_BUTTON ),
diff --git a/basctl/source/accessibility/accessibledialogcontrolshape.cxx b/basctl/source/accessibility/accessibledialogcontrolshape.cxx
index 9a69d2d..5502cde 100644
--- a/basctl/source/accessibility/accessibledialogcontrolshape.cxx
+++ b/basctl/source/accessibility/accessibledialogcontrolshape.cxx
@@ -50,8 +50,7 @@ using namespace ::comphelper;


AccessibleDialogControlShape::AccessibleDialogControlShape (DialogWindow* pDialogWindow, DlgEdObj* pDlgEdObj)
    :OAccessibleExtendedComponentHelper( &m_aLock )
    ,m_pDialogWindow( pDialogWindow )
    :m_pDialogWindow( pDialogWindow )
    ,m_pDlgEdObj( pDlgEdObj )
{
    if ( m_pDlgEdObj )
diff --git a/basctl/source/accessibility/accessibledialogwindow.cxx b/basctl/source/accessibility/accessibledialogwindow.cxx
index 1cedd99..6d30646 100644
--- a/basctl/source/accessibility/accessibledialogwindow.cxx
+++ b/basctl/source/accessibility/accessibledialogwindow.cxx
@@ -99,8 +99,7 @@ bool AccessibleDialogWindow::ChildDescriptor::operator<( const ChildDescriptor& 


AccessibleDialogWindow::AccessibleDialogWindow (basctl::DialogWindow* pDialogWindow)
    : OAccessibleExtendedComponentHelper( &m_aLock)
    , m_pDialogWindow(pDialogWindow)
    : m_pDialogWindow(pDialogWindow)
    , m_pDlgEditor(nullptr)
    , m_pDlgEdModel(nullptr)
{
diff --git a/basctl/source/inc/accessibledialogcontrolshape.hxx b/basctl/source/inc/accessibledialogcontrolshape.hxx
index aba1a83e..4830032 100644
--- a/basctl/source/inc/accessibledialogcontrolshape.hxx
+++ b/basctl/source/inc/accessibledialogcontrolshape.hxx
@@ -25,7 +25,6 @@
#include <comphelper/accessiblecomponenthelper.hxx>
#include <cppuhelper/implbase3.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

namespace vcl { class Window; }

@@ -47,8 +46,7 @@ typedef ::cppu::ImplHelper3<
        css::lang::XServiceInfo,
        css::beans::XPropertyChangeListener > AccessibleDialogControlShape_BASE;

class AccessibleDialogControlShape :    private BaseVCLExternalSolarLock,
                                        public comphelper::OAccessibleExtendedComponentHelper,
class AccessibleDialogControlShape :    public comphelper::OAccessibleExtendedComponentHelper,
                                        public AccessibleDialogControlShape_BASE
{
    friend class AccessibleDialogWindow;
diff --git a/basctl/source/inc/accessibledialogwindow.hxx b/basctl/source/inc/accessibledialogwindow.hxx
index 2524e42..badcabda 100644
--- a/basctl/source/inc/accessibledialogwindow.hxx
+++ b/basctl/source/inc/accessibledialogwindow.hxx
@@ -27,7 +27,6 @@
#include <svl/lstner.hxx>
#include <tools/link.hxx>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

class VclSimpleEvent;
class VclWindowEvent;
@@ -52,8 +51,7 @@ typedef ::cppu::ImplHelper3 <
    css::accessibility::XAccessibleSelection,
    css::lang::XServiceInfo > AccessibleDialogWindow_BASE;

class AccessibleDialogWindow :  private BaseVCLExternalSolarLock,
                                public comphelper::OAccessibleExtendedComponentHelper,
class AccessibleDialogWindow :  public comphelper::OAccessibleExtendedComponentHelper,
                                public AccessibleDialogWindow_BASE,
                                public SfxListener
{
diff --git a/comphelper/source/misc/accessiblecomponenthelper.cxx b/comphelper/source/misc/accessiblecomponenthelper.cxx
index a5211d6..ab01665 100644
--- a/comphelper/source/misc/accessiblecomponenthelper.cxx
+++ b/comphelper/source/misc/accessiblecomponenthelper.cxx
@@ -29,8 +29,7 @@ namespace comphelper
    using namespace ::com::sun::star::lang;
    using namespace ::com::sun::star::accessibility;

    OCommonAccessibleComponent::OCommonAccessibleComponent( IMutex* _pExternalLock )
        :OAccessibleContextHelper( _pExternalLock )
    OCommonAccessibleComponent::OCommonAccessibleComponent( )
    {
    }

@@ -93,8 +92,7 @@ namespace comphelper
        return implGetBounds();
    }

    OAccessibleComponentHelper::OAccessibleComponentHelper( IMutex* _pExternalLock )
        :OCommonAccessibleComponent( _pExternalLock )
    OAccessibleComponentHelper::OAccessibleComponentHelper( )
    {
    }

@@ -133,8 +131,7 @@ namespace comphelper
        return OCommonAccessibleComponent::getBounds( );
    }

    OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( IMutex* _pExternalLock )
        :OCommonAccessibleComponent( _pExternalLock )
    OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( )
    {
    }

diff --git a/comphelper/source/misc/accessiblecontexthelper.cxx b/comphelper/source/misc/accessiblecontexthelper.cxx
index f03598d..df837e2 100644
--- a/comphelper/source/misc/accessiblecontexthelper.cxx
+++ b/comphelper/source/misc/accessiblecontexthelper.cxx
@@ -24,25 +24,20 @@
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
#include <comphelper/accessibleeventnotifier.hxx>
#include <comphelper/solarmutex.hxx>


namespace comphelper
{


    using namespace ::com::sun::star::uno;
    using namespace ::com::sun::star::lang;
    using namespace ::com::sun::star::accessibility;

    IMutex::~IMutex() {}

    /** implementation class for OAccessibleContextHelper. No own thread safety!
    */
    class OContextHelper_Impl
    {
    private:
        IMutex*                             m_pExternalLock;    // the optional additional external lock

        WeakReference< XAccessible >        m_aCreator;         // the XAccessible which created our XAccessibleContext

        AccessibleEventNotifier::TClientId  m_nClientId;
@@ -51,9 +46,6 @@ namespace comphelper
        Reference< XAccessible >    getCreator( ) const                 { return m_aCreator; }
        inline  void                        setCreator( const Reference< XAccessible >& _rAcc );

        IMutex*                     getExternalLock( )                  { return m_pExternalLock; }
        void                        setExternalLock( IMutex* _pLock )   { m_pExternalLock = _pLock; }

        AccessibleEventNotifier::TClientId
                                            getClientId() const                 { return m_nClientId; }
        void                        setClientId( const AccessibleEventNotifier::TClientId _nId )
@@ -61,8 +53,7 @@ namespace comphelper

    public:
        OContextHelper_Impl()
            :m_pExternalLock( nullptr )
            ,m_nClientId( 0 )
            :m_nClientId( 0 )
        {
        }
    };
@@ -73,26 +64,15 @@ namespace comphelper
        m_aCreator = _rAcc;
    }

    OAccessibleContextHelper::OAccessibleContextHelper( IMutex* _pExternalLock )
    OAccessibleContextHelper::OAccessibleContextHelper( )
        :OAccessibleContextHelper_Base( GetMutex() )
        ,m_pImpl(new OContextHelper_Impl)
    {
        assert(_pExternalLock);
        m_pImpl->setExternalLock( _pExternalLock );
    }


    OAccessibleContextHelper::~OAccessibleContextHelper( )
    {
        /* forgets the reference to the external lock, if present.

           <p>This means any further locking will not be guard the external lock anymore, never.</p>

           <p>To be used in derived classes which do not supply the external lock themself, but instead get
           them passed from own derivees (or clients).</p>
        */
        m_pImpl->setExternalLock( nullptr );

            // this ensures that the lock, which may be already destroyed as part of the derivee,
            // is not used anymore

@@ -100,17 +80,11 @@ namespace comphelper
    }


    IMutex* OAccessibleContextHelper::getExternalLock( )
    {
        return m_pImpl->getExternalLock();
    }


    void SAL_CALL OAccessibleContextHelper::disposing()
    {
        // rhbz#1001768: de facto this class is locked by SolarMutex;
        // do not lock m_Mutex because it may cause deadlock
        OMutexGuard aGuard( getExternalLock() );
        osl::Guard<SolarMutex> aGuard(SolarMutex::get());

        if ( m_pImpl->getClientId( ) )
        {
@@ -122,7 +96,7 @@ namespace comphelper

    void SAL_CALL OAccessibleContextHelper::addAccessibleEventListener( const Reference< XAccessibleEventListener >& _rxListener )
    {
        OMutexGuard aGuard( getExternalLock() );
        osl::Guard<SolarMutex> aGuard(SolarMutex::get());
            // don't use the OContextEntryGuard - it will throw an exception if we're not alive
            // anymore, while the most recent specification for XComponent states that we should
            // silently ignore the call in such a situation
@@ -145,7 +119,7 @@ namespace comphelper

    void SAL_CALL OAccessibleContextHelper::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& _rxListener )
    {
        OMutexGuard aGuard( getExternalLock() );
        osl::Guard<SolarMutex> aGuard(SolarMutex::get());
            // don't use the OContextEntryGuard - it will throw an exception if we're not alive
            // anymore, while the most recent specification for XComponent states that we should
            // silently ignore the call in such a situation
diff --git a/comphelper/source/misc/accessibleselectionhelper.cxx b/comphelper/source/misc/accessibleselectionhelper.cxx
index fe5f47b..c190792 100644
--- a/comphelper/source/misc/accessibleselectionhelper.cxx
+++ b/comphelper/source/misc/accessibleselectionhelper.cxx
@@ -101,7 +101,7 @@ namespace comphelper
        implSelect( nSelectedChildIndex, false );
    }

    OAccessibleSelectionHelper::OAccessibleSelectionHelper( IMutex* _pExternalLock ) : OAccessibleComponentHelper(_pExternalLock)
    OAccessibleSelectionHelper::OAccessibleSelectionHelper()
    {
    }

diff --git a/comphelper/source/misc/accessibletexthelper.cxx b/comphelper/source/misc/accessibletexthelper.cxx
index 13ab75e..99f095b 100644
--- a/comphelper/source/misc/accessibletexthelper.cxx
+++ b/comphelper/source/misc/accessibletexthelper.cxx
@@ -752,8 +752,7 @@ namespace comphelper
    // OAccessibleTextHelper


    OAccessibleTextHelper::OAccessibleTextHelper( IMutex* _pExternalLock )
        :OAccessibleExtendedComponentHelper( _pExternalLock )
    OAccessibleTextHelper::OAccessibleTextHelper( )
    {
    }

diff --git a/include/comphelper/accessiblecomponenthelper.hxx b/include/comphelper/accessiblecomponenthelper.hxx
index 42a886a..e7ac2fa 100644
--- a/include/comphelper/accessiblecomponenthelper.hxx
+++ b/include/comphelper/accessiblecomponenthelper.hxx
@@ -41,7 +41,7 @@ namespace comphelper
    {
    protected:
        /// see the respective base class ctor for an extensive comment on this, please
        OCommonAccessibleComponent( IMutex* _pExternalLock );
        OCommonAccessibleComponent();
        virtual ~OCommonAccessibleComponent() override;

    protected:
@@ -87,8 +87,7 @@ namespace comphelper
            ,public OAccessibleComponentHelper_Base
    {
    protected:
        /// see the respective base class ctor for an extensive comment on this, please
        OAccessibleComponentHelper( IMutex* _pExternalLock );
        OAccessibleComponentHelper();

    public:
        // XInterface
@@ -118,8 +117,7 @@ namespace comphelper
            ,public OAccessibleExtendedComponentHelper_Base
    {
    protected:
        /// see the respective base class ctor for an extensive comment on this, please
        OAccessibleExtendedComponentHelper( IMutex* _pExternalLock );
        OAccessibleExtendedComponentHelper( );

    public:
        // XInterface
diff --git a/include/comphelper/accessiblecontexthelper.hxx b/include/comphelper/accessiblecontexthelper.hxx
index 7163817..1cc27da 100644
--- a/include/comphelper/accessiblecontexthelper.hxx
+++ b/include/comphelper/accessiblecontexthelper.hxx
@@ -26,6 +26,7 @@
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <comphelper/comphelperdllapi.h>
#include <comphelper/solarmutex.hxx>
#include <memory>


@@ -33,45 +34,6 @@ namespace comphelper
{


    //= IMutex


    // This whole thingie here (own mutex classes and such) is a HACK. I hate the SolarMutex.
    // See below for more explanations ....

    /** abstract interface for implementing a mutex
    */
    class COMPHELPER_DLLPUBLIC IMutex
    {
    public:
        virtual ~IMutex();
        virtual void acquire() = 0;
        virtual void release() = 0;
    };


    //= OMutexGuard


    class OMutexGuard
    {
        IMutex* m_pMutex;
    public:
        OMutexGuard( IMutex* _pMutex )
            :m_pMutex( _pMutex )
        {
            if ( m_pMutex )
                m_pMutex->acquire();
        }

        ~OMutexGuard( )
        {
            if ( m_pMutex )
                m_pMutex->release();
        }
    };


    //= OAccessibleContextHelper


@@ -92,33 +54,7 @@ namespace comphelper
    protected:
        virtual ~OAccessibleContextHelper( ) override;

        /** ctor

            <p>If you need additional object safety for your class, and want to ensure that your own
            mutex is locked before the mutex this class provides is, than use this ctor.</p>

            <p>Beware that this is a hack. Unfortunately, OpenOffice.org has two different mutex hierarchies,
            which are not compatible. In addition, wide parts of the code (especially VCL) is not thread-safe,
            but instead relies on a <em>single global mutex</em>. As a consequence, components using
            directly or indirectly such code need to care for this global mutex. Yes, this is as ugly as
            anything.</p>

            <p>Note that the external lock is used as additional lock, not as the only one. The own mutex of the
            instance is used for internal actions, and every action which potentially involves external code
            (for instance every call to a virtual method overridden by derivees) is <em>additionally</em> and
            <em>first</em> guarded by with the external lock.</p>

            <p>Beware of the lifetime of the lock - you must ensure that the lock exists at least as long as
            the context does. A good approach to implement the lock may be to derive you own context
            not only from OAccessibleContextHelper, but also from IMutex.</p>

            <p>One more note. This lock is definitely not used once the dtor is reached. Means whatever
            the dtor implementation does, it does <em>not</em> guard the external lock. See this as a contract.
            <br/>You should ensure the same thing for own derivees which do not supply the lock themself,
            but get them from yet another derivee.</p>
            @see forgetExternalLock
        */
        OAccessibleContextHelper( IMutex* _pExternalLock );
        OAccessibleContextHelper( );

        /** late construction
        @param _rxAccessible
@@ -180,7 +116,6 @@ namespace comphelper

        // ensures that the object is alive
        inline  void            ensureAlive( const OAccessControl& ) const;
        inline  IMutex*         getExternalLock( const OAccessControl& );
        inline  ::osl::Mutex&   GetMutex( const OAccessControl& );

    protected:
@@ -224,7 +159,6 @@ namespace comphelper

        // access to the base class' broadcast helper/mutex
        ::osl::Mutex&                   GetMutex()                  { return m_aMutex; }
        IMutex*                         getExternalLock( );
    };


@@ -234,12 +168,6 @@ namespace comphelper
    }


    inline  IMutex* OAccessibleContextHelper::getExternalLock( const OAccessControl& )
    {
        return getExternalLock();
    }


    inline  ::osl::Mutex& OAccessibleContextHelper::GetMutex( const OAccessControl& )
    {
        return GetMutex();
@@ -287,7 +215,7 @@ namespace comphelper
    //= OExternalLockGuard

    class OExternalLockGuard
            :public OMutexGuard
            :public osl::Guard<SolarMutex>
            ,public OContextEntryGuard
    {
    public:
@@ -296,7 +224,7 @@ namespace comphelper


    inline OExternalLockGuard::OExternalLockGuard( OAccessibleContextHelper* _pContext )
        :OMutexGuard( _pContext->getExternalLock( OAccessibleContextHelper::OAccessControl() ) )
        :osl::Guard<SolarMutex>( SolarMutex::get() )
        ,OContextEntryGuard( _pContext )
    {
        // Only lock the external mutex,
diff --git a/include/comphelper/accessibleselectionhelper.hxx b/include/comphelper/accessibleselectionhelper.hxx
index 0a67e48..d96347f 100644
--- a/include/comphelper/accessibleselectionhelper.hxx
+++ b/include/comphelper/accessibleselectionhelper.hxx
@@ -104,8 +104,7 @@ namespace comphelper
    {
    protected:

        /// see the respective base class ctor for an extensive comment on this, please
        OAccessibleSelectionHelper( IMutex* _pExternalLock );
        OAccessibleSelectionHelper();

        // return ourself here by default
        virtual css::uno::Reference< css::accessibility::XAccessibleContext > implGetAccessibleContext() override;
diff --git a/include/comphelper/accessibletexthelper.hxx b/include/comphelper/accessibletexthelper.hxx
index 8083ba6..7b5e1a1 100644
--- a/include/comphelper/accessibletexthelper.hxx
+++ b/include/comphelper/accessibletexthelper.hxx
@@ -128,8 +128,7 @@ namespace comphelper
                                  public OAccessibleTextHelper_Base
    {
    protected:
        // see the respective base class ctor for an extensive comment on this, please
        OAccessibleTextHelper( IMutex* _pExternalLock );
        OAccessibleTextHelper();

    public:
        // XInterface
diff --git a/include/toolkit/awt/vclxaccessiblecomponent.hxx b/include/toolkit/awt/vclxaccessiblecomponent.hxx
index e295201..f37c95c 100644
--- a/include/toolkit/awt/vclxaccessiblecomponent.hxx
+++ b/include/toolkit/awt/vclxaccessiblecomponent.hxx
@@ -30,7 +30,6 @@
#include <cppuhelper/implbase1.hxx>
#include <comphelper/accimplaccess.hxx>
#include <comphelper/accessiblecomponenthelper.hxx>
#include <toolkit/helper/externallock.hxx>


#include <tools/link.hxx>
@@ -53,8 +52,7 @@ typedef ::cppu::ImplHelper1<
    css::lang::XServiceInfo > VCLXAccessibleComponent_BASE;

class TOOLKIT_DLLPUBLIC VCLXAccessibleComponent
        :private BaseVCLExternalSolarLock
        ,public comphelper::OAccessibleExtendedComponentHelper
        :public comphelper::OAccessibleExtendedComponentHelper
        ,public ::comphelper::OAccessibleImplementationAccess
        ,public VCLXAccessibleComponent_BASE
{
diff --git a/include/toolkit/controls/accessiblecontrolcontext.hxx b/include/toolkit/controls/accessiblecontrolcontext.hxx
index 7642433..cbd304a 100644
--- a/include/toolkit/controls/accessiblecontrolcontext.hxx
+++ b/include/toolkit/controls/accessiblecontrolcontext.hxx
@@ -27,7 +27,6 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <vcl/vclptr.hxx>
#include <toolkit/helper/externallock.hxx>

namespace vcl { class Window; }

@@ -49,8 +48,7 @@ namespace toolkit
        is being disposed.</p>
    */
    class OAccessibleControlContext
            :private BaseVCLExternalSolarLock
            ,public ::comphelper::OAccessibleImplementationAccess
            :public ::comphelper::OAccessibleImplementationAccess
            ,public OAccessibleControlContext_Base
            ,public OAccessibleControlContext_IBase
    {
diff --git a/include/toolkit/helper/externallock.hxx b/include/toolkit/helper/externallock.hxx
deleted file mode 100644
index ddac625..0000000
--- a/include/toolkit/helper/externallock.hxx
+++ /dev/null
@@ -1,44 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef INCLUDED_TOOLKIT_HELPER_EXTERNALLOCK_HXX
#define INCLUDED_TOOLKIT_HELPER_EXTERNALLOCK_HXX

#include <toolkit/dllapi.h>
#include <comphelper/accessiblecontexthelper.hxx>


//  class VCLExternalSolarLock


class TOOLKIT_DLLPUBLIC VCLExternalSolarLock : public ::comphelper::IMutex
{
public:
    virtual void acquire() override;
    virtual void release() override;
};

class BaseVCLExternalSolarLock
{
protected:
    mutable VCLExternalSolarLock m_aLock;
};

#endif // INCLUDED_TOOLKIT_HELPER_EXTERNALLOCK_HXX

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/inc/vclxaccessibleheaderbaritem.hxx b/svtools/inc/vclxaccessibleheaderbaritem.hxx
index ac3c30c..03701de 100644
--- a/svtools/inc/vclxaccessibleheaderbaritem.hxx
+++ b/svtools/inc/vclxaccessibleheaderbaritem.hxx
@@ -26,8 +26,6 @@

#include <tools/link.hxx>

#include <toolkit/helper/externallock.hxx>

#include <vcl/vclptr.hxx>

#include <vector>
@@ -49,9 +47,8 @@ typedef ::cppu::ImplHelper2<
    css::accessibility::XAccessible,
    css::lang::XServiceInfo > VCLXAccessibleHeaderBarItem_BASE;

class VCLXAccessibleHeaderBarItem : private BaseVCLExternalSolarLock,
                        public comphelper::OAccessibleExtendedComponentHelper,
                        public VCLXAccessibleHeaderBarItem_BASE
class VCLXAccessibleHeaderBarItem : public comphelper::OAccessibleExtendedComponentHelper,
                                    public VCLXAccessibleHeaderBarItem_BASE
{
private:
    VclPtr<HeaderBar>        m_pHeadBar;
diff --git a/svtools/source/control/vclxaccessibleheaderbaritem.cxx b/svtools/source/control/vclxaccessibleheaderbaritem.cxx
index 2d6c7fa..2e7bad0 100644
--- a/svtools/source/control/vclxaccessibleheaderbaritem.cxx
+++ b/svtools/source/control/vclxaccessibleheaderbaritem.cxx
@@ -31,7 +31,6 @@
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <toolkit/awt/vclxfont.hxx>
#include <toolkit/helper/externallock.hxx>
#include <toolkit/helper/convert.hxx>

#include <vector>
@@ -47,8 +46,7 @@ using namespace ::comphelper;


VCLXAccessibleHeaderBarItem::VCLXAccessibleHeaderBarItem( HeaderBar*    pHeadBar, sal_Int32 _nIndexInParent )
    :OAccessibleExtendedComponentHelper( &m_aLock )
    ,m_pHeadBar( pHeadBar )
    :m_pHeadBar( pHeadBar )
    ,m_nIndexInParent(_nIndexInParent + 1)

{
diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx
index dc6c6d4..e34c586 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -41,8 +41,7 @@ namespace svx
    using namespace ::com::sun::star::accessibility;


SvxShowCharSetVirtualAcc::SvxShowCharSetVirtualAcc( SvxShowCharSet* pParent ) : OAccessibleComponentHelper(&m_aLock)
,mpParent( pParent )
SvxShowCharSetVirtualAcc::SvxShowCharSetVirtualAcc( SvxShowCharSet* pParent ) : mpParent( pParent )
{
    osl_atomic_increment(&m_refCount);
    {
@@ -253,8 +252,7 @@ uno::Reference< css::accessibility::XAccessible > SvxShowCharSetItem::GetAccessi



SvxShowCharSetAcc::SvxShowCharSetAcc( SvxShowCharSetVirtualAcc* _pParent ) : OAccessibleSelectionHelper(&m_aLock)
  ,m_pParent( _pParent )
SvxShowCharSetAcc::SvxShowCharSetAcc( SvxShowCharSetVirtualAcc* _pParent ) : m_pParent( _pParent )
{
    osl_atomic_increment(&m_refCount);
    {
@@ -558,8 +556,7 @@ sal_Int32 SAL_CALL SvxShowCharSetAcc::getAccessibleColumn( sal_Int32 nChildIndex
}


SvxShowCharSetItemAcc::SvxShowCharSetItemAcc( SvxShowCharSetItem* pParent ) : OAccessibleComponentHelper(&m_aLock)
,mpParent( pParent )
SvxShowCharSetItemAcc::SvxShowCharSetItemAcc( SvxShowCharSetItem* pParent ) : mpParent( pParent )
{
    OSL_ENSURE(pParent,"NO parent supplied!");
    osl_atomic_increment(&m_refCount);
diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
index 83cd41d..6783b55 100644
--- a/svx/source/inc/charmapacc.hxx
+++ b/svx/source/inc/charmapacc.hxx
@@ -25,7 +25,6 @@
#include <comphelper/accessibleselectionhelper.hxx>
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleTable.hpp>
#include <toolkit/helper/externallock.hxx>

#include <vector>
class SvxShowCharSet;
@@ -39,8 +38,7 @@ namespace svx
    /** The class SvxShowCharSetVirtualAcc is used as a virtual class which contains the table and the scrollbar.
        In the vcl control, the table and the scrollbar exists in one class. This is not feasible for the accessibility api.
    */
    class SvxShowCharSetVirtualAcc : private BaseVCLExternalSolarLock,
                                     public ::comphelper::OAccessibleComponentHelper,
    class SvxShowCharSetVirtualAcc : public ::comphelper::OAccessibleComponentHelper,
                                     public OAccessibleHelper_Base_2
    {
        VclPtr<SvxShowCharSet>             mpParent; // the vcl control
@@ -122,8 +120,7 @@ namespace svx
    /** The table implementation of the vcl control.
    */

    class SvxShowCharSetAcc : private BaseVCLExternalSolarLock,
                              public ::comphelper::OAccessibleSelectionHelper,
    class SvxShowCharSetAcc : public ::comphelper::OAccessibleSelectionHelper,
                              public OAccessibleHelper_Base
    {
        ::std::vector< css::uno::Reference< css::accessibility::XAccessible > > m_aChildren;
@@ -212,8 +209,7 @@ namespace svx

    /** The child implementation of the table.
    */
    class SvxShowCharSetItemAcc : private BaseVCLExternalSolarLock,
                                  public ::comphelper::OAccessibleComponentHelper,
    class SvxShowCharSetItemAcc : public ::comphelper::OAccessibleComponentHelper,
                                  public OAccessibleHelper_Base_3
    {
    private:
diff --git a/toolkit/Library_tk.mk b/toolkit/Library_tk.mk
index 3aea706..94e08a8 100644
--- a/toolkit/Library_tk.mk
+++ b/toolkit/Library_tk.mk
@@ -109,7 +109,6 @@ $(eval $(call gb_Library_add_exception_objects,tk,\
    toolkit/source/controls/unocontrolmodel \
    toolkit/source/controls/unocontrols \
    toolkit/source/helper/accessibilityclient \
    toolkit/source/helper/externallock \
    toolkit/source/helper/formpdfexport \
    toolkit/source/helper/imagealign \
    toolkit/source/helper/listenermultiplexer \
diff --git a/toolkit/source/awt/vclxaccessiblecomponent.cxx b/toolkit/source/awt/vclxaccessiblecomponent.cxx
index ae971fa..40a40d2 100644
--- a/toolkit/source/awt/vclxaccessiblecomponent.cxx
+++ b/toolkit/source/awt/vclxaccessiblecomponent.cxx
@@ -43,8 +43,6 @@ using namespace ::com::sun::star;
using namespace ::comphelper;

VCLXAccessibleComponent::VCLXAccessibleComponent( VCLXWindow* pVCLXWindow )
    : OAccessibleExtendedComponentHelper( &m_aLock )
    , OAccessibleImplementationAccess( )
{
    m_xVCLXWindow = pVCLXWindow;

diff --git a/toolkit/source/controls/accessiblecontrolcontext.cxx b/toolkit/source/controls/accessiblecontrolcontext.cxx
index 155cf83d..bd9d729 100644
--- a/toolkit/source/controls/accessiblecontrolcontext.cxx
+++ b/toolkit/source/controls/accessiblecontrolcontext.cxx
@@ -45,7 +45,6 @@ namespace toolkit


    OAccessibleControlContext::OAccessibleControlContext()
        : OAccessibleControlContext_Base(&m_aLock)
    {
        // nothing to do here, we have a late ctor
    }
diff --git a/toolkit/source/helper/externallock.cxx b/toolkit/source/helper/externallock.cxx
deleted file mode 100644
index 4e4e5e9..0000000
--- a/toolkit/source/helper/externallock.cxx
+++ /dev/null
@@ -1,37 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include <toolkit/helper/externallock.hxx>
#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>


//  class VCLExternalSolarLock

void VCLExternalSolarLock::acquire()
{
    Application::GetSolarMutex().acquire();
}

void VCLExternalSolarLock::release()
{
    Application::GetSolarMutex().release();
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */