sw/source/core/access/acccell.cxx | 1 sw/source/core/access/acccontext.cxx | 46 ++++++++++-------------------- sw/source/core/access/acccontext.hxx | 29 +++--------------- sw/source/core/access/accdoc.cxx | 35 +++++++++++++++------- sw/source/core/access/accfootnote.cxx | 2 - sw/source/core/access/accframebase.cxx | 2 - sw/source/core/access/accheaderfooter.cxx | 4 -- sw/source/core/access/accmap.cxx | 14 +++++---- sw/source/core/access/accpage.cxx | 8 +---- sw/source/core/access/accpara.cxx | 24 +++++++++++---- sw/source/core/access/acctable.cxx | 4 +- 11 files changed, 75 insertions(+), 94 deletions(-)
New commits: commit 125ca372c1d0821139b4c682a02494294b322473 Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:49:07 2017 +0100 sw: just remove SwAccesibleContext must-override methods What's the point? Change-Id: Ifdff4aae85282d213f82bd2d69f61f96f8b5e40c diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx index 9263e150a681..bedbb8c7a813 100644 --- a/sw/source/core/access/acccontext.cxx +++ b/sw/source/core/access/acccontext.cxx @@ -678,12 +678,6 @@ sal_Int16 SAL_CALL SwAccessibleContext::getAccessibleRole() return m_nRole; } -OUString SAL_CALL SwAccessibleContext::getAccessibleDescription() -{ - assert(!"description needs to be overridden"); - throw uno::RuntimeException("description needs to be overridden"); -} - OUString SAL_CALL SwAccessibleContext::getAccessibleName() { return m_sName; @@ -975,23 +969,11 @@ sal_Int32 SAL_CALL SwAccessibleContext::getBackground() return COL_WHITE; } -OUString SAL_CALL SwAccessibleContext::getImplementationName() -{ - assert(!"implementation name needs to be overridden"); - throw uno::RuntimeException("implementation name needs to be overridden"); -} - sal_Bool SAL_CALL SwAccessibleContext::supportsService (const OUString& ServiceName) { return cppu::supportsService(this, ServiceName); } -uno::Sequence< OUString > SAL_CALL SwAccessibleContext::getSupportedServiceNames() -{ - assert(!"supported services names needs to be overridden"); - throw uno::RuntimeException("supported services names needs to be overridden"); -} - void SwAccessibleContext::DisposeShape( const SdrObject *pObj, ::accessibility::AccessibleShape *pAccImpl ) { diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx index 4c006266c475..1dc8b1972168 100644 --- a/sw/source/core/access/acccontext.hxx +++ b/sw/source/core/access/acccontext.hxx @@ -230,9 +230,7 @@ public: virtual sal_Int16 SAL_CALL getAccessibleRole() override; - // Return this object's description. - virtual OUString SAL_CALL - getAccessibleDescription() override; + // getAccessibleDescription() is abstract // Return the object's current name. virtual OUString SAL_CALL @@ -282,19 +280,12 @@ public: // XServiceInfo - /** Returns an identifier for the implementation of this object. */ - virtual OUString SAL_CALL - getImplementationName() override; + // getImplementationName() and getSupportedServiceNames are abstract /** Return whether the specified service is supported by this class. */ virtual sal_Bool SAL_CALL supportsService (const OUString& sServiceName) override; - /** Returns a list of all supported services. In this case that is just - the AccessibleContext service. */ - virtual css::uno::Sequence< OUString> SAL_CALL - getSupportedServiceNames() override; - // thread safe C++ interface // The object is not visible an longer and should be destroyed commit d9c2ba239d0b3d71aa64fc9319b7b1025517170f Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:42:39 2017 +0100 sw: remove THROW_RUNTIME_EXCEPTION macro Change-Id: I74d4b31ea619c94245759b7a061c40095a0879ad diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx index f93cc5d2c1e0..9263e150a681 100644 --- a/sw/source/core/access/acccontext.cxx +++ b/sw/source/core/access/acccontext.cxx @@ -680,8 +680,8 @@ sal_Int16 SAL_CALL SwAccessibleContext::getAccessibleRole() OUString SAL_CALL SwAccessibleContext::getAccessibleDescription() { - OSL_ENSURE(false, "description needs to be overridden"); - THROW_RUNTIME_EXCEPTION( XAccessibleContext, "internal error (method must be overridden)" ); + assert(!"description needs to be overridden"); + throw uno::RuntimeException("description needs to be overridden"); } OUString SAL_CALL SwAccessibleContext::getAccessibleName() @@ -977,9 +977,8 @@ sal_Int32 SAL_CALL SwAccessibleContext::getBackground() OUString SAL_CALL SwAccessibleContext::getImplementationName() { - OSL_ENSURE( false, "implementation name needs to be overridden" ); - - THROW_RUNTIME_EXCEPTION( lang::XServiceInfo, "implementation name needs to be overridden" ) + assert(!"implementation name needs to be overridden"); + throw uno::RuntimeException("implementation name needs to be overridden"); } sal_Bool SAL_CALL SwAccessibleContext::supportsService (const OUString& ServiceName) @@ -989,8 +988,8 @@ sal_Bool SAL_CALL SwAccessibleContext::supportsService (const OUString& ServiceN uno::Sequence< OUString > SAL_CALL SwAccessibleContext::getSupportedServiceNames() { - OSL_ENSURE( false, "supported services names needs to be overridden" ); - THROW_RUNTIME_EXCEPTION( lang::XServiceInfo, "supported services needs to be overridden" ) + assert(!"supported services names needs to be overridden"); + throw uno::RuntimeException("supported services names needs to be overridden"); } void SwAccessibleContext::DisposeShape( const SdrObject *pObj, diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx index a9aeffec8550..4c006266c475 100644 --- a/sw/source/core/access/acccontext.hxx +++ b/sw/source/core/access/acccontext.hxx @@ -360,13 +360,6 @@ public: const OUString *pArg2 = nullptr ); }; -// some heavily used exception support -#define THROW_RUNTIME_EXCEPTION( ifc, msg ) \ - css::uno::Reference < ifc > xThis( this ); \ - css::uno::RuntimeException aExcept( \ - msg, xThis ); \ - throw aExcept; - #define CHECK_FOR_DEFUNC_THIS( ifc, ths ) \ if( !(GetFrame() && GetMap()) ) \ { \ diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index 358472664edf..449e9a910b78 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -938,7 +938,7 @@ lang::Locale SAL_CALL SwAccessibleParagraph::getLocale() const SwTextFrame *pTextFrame = dynamic_cast<const SwTextFrame*>( GetFrame() ); if( !pTextFrame ) { - THROW_RUNTIME_EXCEPTION( XAccessibleContext, "internal error (no text frame)" ); + throw uno::RuntimeException("no SwTextFrame", static_cast<cppu::OWeakObject*>(this)); } const SwTextNode *pTextNd = pTextFrame->GetTextNode(); commit c1f5339c169c893e63c0de25d0cad3029b475d1b Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:34:47 2017 +0100 sw: remove CHECK_FOR_WINDOW macro Change-Id: Ie375b199e055a01b0888a6efe56ef3a2801412b2 diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx index c125729c0bec..f93cc5d2c1e0 100644 --- a/sw/source/core/access/acccontext.cxx +++ b/sw/source/core/access/acccontext.cxx @@ -787,7 +787,10 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleContext::getAccessibleAtPoint uno::Reference< XAccessible > xAcc; vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Point aPixPoint( aPoint.X, aPoint.Y ); // px rel to parent if( !GetFrame()->IsRootFrame() ) @@ -843,7 +846,14 @@ awt::Rectangle SAL_CALL SwAccessibleContext::getBoundsImpl(bool bRelative) OSL_ENSURE( pParent, "no Parent found" ); vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin && pParent ) + if (!pParent) + { + throw uno::RuntimeException("no Parent", static_cast<cppu::OWeakObject*>(this)); + } + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } SwRect aLogBounds( GetBounds( *(GetMap()), GetFrame() ) ); // twip rel to doc root Rectangle aPixBounds( 0, 0, 0, 0 ); @@ -896,7 +906,10 @@ awt::Point SAL_CALL SwAccessibleContext::getLocationOnScreen() Point aPixPos(aRect.X, aRect.Y); vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } aPixPos = pWin->OutputToAbsoluteScreenPixel(aPixPos); awt::Point aPoint(aPixPos.getX(), aPixPos.getY()); diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx index b87f00ae6f00..a9aeffec8550 100644 --- a/sw/source/core/access/acccontext.hxx +++ b/sw/source/core/access/acccontext.hxx @@ -380,11 +380,6 @@ public: #define CHECK_FOR_DEFUNC( ifc ) \ CHECK_FOR_DEFUNC_THIS( ifc, this ) -#define CHECK_FOR_WINDOW( i, w ) \ - if( !(w) ) \ - { \ - THROW_RUNTIME_EXCEPTION( i, "window is missing" ); \ - } #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx index c332ea858d31..9b5558f295c6 100644 --- a/sw/source/core/access/accdoc.cxx +++ b/sw/source/core/access/accdoc.cxx @@ -230,8 +230,10 @@ awt::Rectangle SAL_CALL SwAccessibleDocumentBase::getBounds() SolarMutexGuard aGuard; vcl::Window *pWin = GetWindow(); - - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Rectangle aPixBounds( pWin->GetWindowExtentsRelative( pWin->GetAccessibleParentWindow() ) ); awt::Rectangle aBox( aPixBounds.Left(), aPixBounds.Top(), @@ -250,8 +252,10 @@ awt::Point SAL_CALL SwAccessibleDocumentBase::getLocation() SolarMutexGuard aGuard; vcl::Window *pWin = GetWindow(); - - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Point aPixPos( pWin->GetWindowExtentsRelative( pWin->GetAccessibleParentWindow() ).TopLeft() ); awt::Point aLoc( aPixPos.getX(), aPixPos.getY() ); @@ -264,8 +268,10 @@ css::awt::Point SAL_CALL SwAccessibleDocumentBase::getLocationOnScreen() SolarMutexGuard aGuard; vcl::Window *pWin = GetWindow(); - - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Point aPixPos( pWin->GetWindowExtentsRelative( nullptr ).TopLeft() ); awt::Point aLoc( aPixPos.getX(), aPixPos.getY() ); @@ -278,8 +284,10 @@ css::awt::Size SAL_CALL SwAccessibleDocumentBase::getSize() SolarMutexGuard aGuard; vcl::Window *pWin = GetWindow(); - - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Size aPixSize( pWin->GetWindowExtentsRelative( nullptr ).GetSize() ); awt::Size aSize( aPixSize.Width(), aPixSize.Height() ); @@ -293,8 +301,10 @@ sal_Bool SAL_CALL SwAccessibleDocumentBase::containsPoint( SolarMutexGuard aGuard; vcl::Window *pWin = GetWindow(); - - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Rectangle aPixBounds( pWin->GetWindowExtentsRelative( nullptr ) ); aPixBounds.Move(-aPixBounds.Left(), -aPixBounds.Top()); @@ -313,7 +323,10 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleDocumentBase::getAccessibleAt CHECK_FOR_DEFUNC( XAccessibleComponent ) vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ) + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Point aPixPoint( aPoint.X, aPoint.Y ); // px rel to window if( mpChildWin->GetWindowExtentsRelative( pWin ).IsInside( aPixPoint ) ) diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index 0c4e43ef46b1..358472664edf 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -1381,7 +1381,10 @@ css::uno::Sequence< css::style::TabStop > SwAccessibleParagraph::GetCurrentTabSt { // translate core coordinates into accessibility coordinates vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ); + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } SwRect aTmpRect(0, 0, tabs[0].Position, 0); @@ -2360,7 +2363,10 @@ awt::Rectangle SwAccessibleParagraph::getCharacterBounds( // translate core coordinates into accessibility coordinates vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ); + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Rectangle aScreenRect( GetMap()->CoreToPixel( aCoreRect.SVRect() )); SwRect aFrameLogBounds( GetBounds( *(GetMap()) ) ); // twip rel to doc root @@ -2396,7 +2402,10 @@ sal_Int32 SwAccessibleParagraph::getIndexAtPoint( const awt::Point& rPoint ) // construct Point (translate into layout coordinates) vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ); + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Point aPoint( rPoint.X, rPoint.Y ); SwRect aLogBounds( GetBounds( *(GetMap()), GetFrame() ) ); // twip rel to doc root Point aPixPos( GetMap()->CoreToPixel( aLogBounds.SVRect() ).TopLeft() ); @@ -3527,7 +3536,10 @@ sal_Int32 SAL_CALL SwAccessibleParagraph::getNumberOfLineWithCaret() const SwRect& aCursorCoreRect = pCursorShell->GetCharRect(); // translate core coordinates into accessibility coordinates vcl::Window *pWin = GetWindow(); - CHECK_FOR_WINDOW( XAccessibleComponent, pWin ); + if (!pWin) + { + throw uno::RuntimeException("no Window", static_cast<cppu::OWeakObject*>(this)); + } Rectangle aScreenRect( GetMap()->CoreToPixel( aCursorCoreRect.SVRect() )); commit a18fa6973fbfac8f9da738a2fbc5da3cb698d108 Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:06:36 2017 +0100 sw: convert to assert in SwAccessiblePage Change-Id: I3bb8430be2460fa72938a4952670d3d92b12e123 diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx index 91a7e3f0d58b..68908380ed7b 100644 --- a/sw/source/core/access/accpage.cxx +++ b/sw/source/core/access/accpage.cxx @@ -113,9 +113,9 @@ SwAccessiblePage::SwAccessiblePage(std::shared_ptr<SwAccessibleMap> const& pInit : SwAccessibleContext( pInitMap, AccessibleRole::PANEL, pFrame ) , bIsSelected( false ) { - OSL_ENSURE( pFrame != nullptr, "need frame" ); - OSL_ENSURE( pInitMap != nullptr, "need map" ); - OSL_ENSURE( pFrame->IsPageFrame(), "need page frame" ); + assert(pFrame != nullptr); + assert(pInitMap != nullptr); + assert(pFrame->IsPageFrame()); OUString sPage = OUString::number( static_cast<const SwPageFrame*>( GetFrame() )->GetPhyPageNum() ); commit f8a3748c9bac4b323a6eea8b079949c82af8703e Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:03:31 2017 +0100 sw: remove SolarMutexGuards from SwAccessible* constructors Clearly the mutex must be locked by the caller already. Change-Id: I2c8a76f5b04751610ed07819343994b75bea4f4f diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx index a33276248b08..85b733f74bcd 100644 --- a/sw/source/core/access/acccell.cxx +++ b/sw/source/core/access/acccell.cxx @@ -104,7 +104,6 @@ SwAccessibleCell::SwAccessibleCell(std::shared_ptr<SwAccessibleMap> const& pInit , m_aSelectionHelper( *this ) , m_bIsSelected( false ) { - SolarMutexGuard aGuard; OUString sBoxName( pCellFrame->GetTabBox()->GetName() ); SetName( sBoxName ); diff --git a/sw/source/core/access/accfootnote.cxx b/sw/source/core/access/accfootnote.cxx index 5faefac2f2f1..f28fef02dd46 100644 --- a/sw/source/core/access/accfootnote.cxx +++ b/sw/source/core/access/accfootnote.cxx @@ -47,8 +47,6 @@ SwAccessibleFootnote::SwAccessibleFootnote( bIsEndnote ? AccessibleRole::END_NOTE : AccessibleRole::FOOTNOTE, pFootnoteFrame ) { - SolarMutexGuard aGuard; - sal_uInt16 nResId = bIsEndnote ? STR_ACCESS_ENDNOTE_NAME : STR_ACCESS_FOOTNOTE_NAME; diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx index 8329ff586e6b..53572cbd1deb 100644 --- a/sw/source/core/access/accframebase.cxx +++ b/sw/source/core/access/accframebase.cxx @@ -130,8 +130,6 @@ SwAccessibleFrameBase::SwAccessibleFrameBase( SwAccessibleContext( pInitMap, nInitRole, pFlyFrame ), bIsSelected( false ) { - SolarMutexGuard aGuard; - const SwFrameFormat *pFrameFormat = pFlyFrame->GetFormat(); const_cast< SwFrameFormat * >( pFrameFormat )->Add( this ); diff --git a/sw/source/core/access/accheaderfooter.cxx b/sw/source/core/access/accheaderfooter.cxx index f32a0b8b0d14..683c02bf93dd 100644 --- a/sw/source/core/access/accheaderfooter.cxx +++ b/sw/source/core/access/accheaderfooter.cxx @@ -40,8 +40,6 @@ SwAccessibleHeaderFooter::SwAccessibleHeaderFooter( const SwHeaderFrame* pHdFrame ) : SwAccessibleContext( pInitMap, AccessibleRole::HEADER, pHdFrame ) { - SolarMutexGuard aGuard; - OUString sArg( OUString::number( pHdFrame->GetPhyPageNum() ) ); SetName( GetResource( STR_ACCESS_HEADER_NAME, &sArg ) ); } @@ -51,8 +49,6 @@ SwAccessibleHeaderFooter::SwAccessibleHeaderFooter( const SwFooterFrame* pFtFrame ) : SwAccessibleContext( pInitMap, AccessibleRole::FOOTER, pFtFrame ) { - SolarMutexGuard aGuard; - OUString sArg( OUString::number( pFtFrame->GetPhyPageNum() ) ); SetName( GetResource( STR_ACCESS_FOOTER_NAME, &sArg ) ); } diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index bfd93796c63b..0d4a083b6ac0 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1838,6 +1838,7 @@ uno::Reference<XAccessible> SwAccessibleMap::GetDocumentPreview( uno::Reference< XAccessible> SwAccessibleMap::GetContext( const SwFrame *pFrame, bool bCreate ) { + DBG_TESTSOLARMUTEX(); uno::Reference < XAccessible > xAcc; uno::Reference < XAccessible > xOldCursorAcc; bool bOldShapeSelected = false; diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx index 2486fc630e50..91a7e3f0d58b 100644 --- a/sw/source/core/access/accpage.cxx +++ b/sw/source/core/access/accpage.cxx @@ -117,8 +117,6 @@ SwAccessiblePage::SwAccessiblePage(std::shared_ptr<SwAccessibleMap> const& pInit OSL_ENSURE( pInitMap != nullptr, "need map" ); OSL_ENSURE( pFrame->IsPageFrame(), "need page frame" ); - SolarMutexGuard aGuard; - OUString sPage = OUString::number( static_cast<const SwPageFrame*>( GetFrame() )->GetPhyPageNum() ); SetName( GetResource( STR_ACCESS_PAGE_NAME, &sPage ) ); diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index b5185abd15ba..0c4e43ef46b1 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -544,8 +544,6 @@ SwAccessibleParagraph::SwAccessibleParagraph( , mpParaChangeTrackInfo( new SwParaChangeTrackingInfo( rTextFrame ) ) // #i108125# , m_bLastHasSelection(false) //To add TEXT_SELECTION_CHANGED event { - SolarMutexGuard aGuard; - bIsHeading = IsHeading(); //Get the real heading level, Heading1 ~ Heading10 nHeadingLevel = GetRealHeadingLevel(); diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx index b237242f3d62..6e324781367e 100644 --- a/sw/source/core/access/acctable.cxx +++ b/sw/source/core/access/acctable.cxx @@ -767,8 +767,6 @@ SwAccessibleTable::SwAccessibleTable( SwAccessibleContext( pInitMap, AccessibleRole::TABLE, pTabFrame ), mpTableData( nullptr ) { - SolarMutexGuard aGuard; - const SwFrameFormat *pFrameFormat = pTabFrame->GetFormat(); const_cast< SwFrameFormat * >( pFrameFormat )->Add( this ); @@ -1070,6 +1068,8 @@ uno::Reference< XAccessibleTable > SAL_CALL uno::Reference< XAccessibleTable > SAL_CALL SwAccessibleTable::getAccessibleColumnHeaders( ) { + SolarMutexGuard aGuard; + // #i87532# - assure that return accessible object is empty, // if no column header exists. SwAccessibleTableColHeaders* pTableColHeaders = commit cd2b96e2d166d2a3ec074cdae029a51bc3d401f4 Author: Michael Stahl <[email protected]> Date: Fri Mar 24 17:02:49 2017 +0100 sw: remove unnecessary ifdef Change-Id: Ifa0a036589fba816eaa3503b17223e80f5b99aa1 diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 6986a7260fc0..bfd93796c63b 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1741,9 +1741,8 @@ SwAccessibleMap::~SwAccessibleMap() { osl::MutexGuard aGuard( maEventMutex ); -#if OSL_DEBUG_LEVEL > 0 - assert(!(mpEvents || mpEventMap)); -#endif + assert(!mpEvents); + assert(!mpEventMap); delete mpEventMap; mpEventMap = nullptr; delete mpEvents; commit 14189f6db434724954cd1b85659d460c7b39be83 Author: Michael Stahl <[email protected]> Date: Fri Mar 24 16:45:19 2017 +0100 sw: fix incorrect static_cast in ~SwAccessibleMap Change-Id: I43aef41cee96f69b0bbd540b832780c4002219e3 diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 1c51ac6fbc05..6986a7260fc0 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1668,7 +1668,8 @@ SwAccessibleMap::~SwAccessibleMap() if(xAcc.is()) { - SwAccessibleDocument *pAcc = static_cast< SwAccessibleDocument * >( xAcc.get() ); + SwAccessibleDocumentBase *const pAcc = + static_cast<SwAccessibleDocumentBase *>(xAcc.get()); pAcc->Dispose( true ); } #if OSL_DEBUG_LEVEL > 0 commit 8cae63caf04e4ba555af13c022dab9dfe9c79dcf Author: Michael Stahl <[email protected]> Date: Fri Mar 24 16:28:36 2017 +0100 sw: remove unnecessary ClearMapPointer calls from ~SwAccessibleMap These are unnecessary with the fix for tdf#58624, because now SwAccessibleContext dtor will check that the map is still alive. Anything that's still alive at that point should have been disposed by the recursive Dispose call. Change-Id: I39102a6b222b2121987d92077d4b9548281d9973 diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx index f2288a51a3b6..c125729c0bec 100644 --- a/sw/source/core/access/acccontext.cxx +++ b/sw/source/core/access/acccontext.cxx @@ -1429,14 +1429,6 @@ OUString SwAccessibleContext::GetResource( sal_uInt16 nResId, return sStr; } - -void SwAccessibleContext::ClearMapPointer() -{ - DBG_TESTSOLARMUTEX(); - m_pMap = nullptr; - m_wMap.reset(); -} - void SwAccessibleContext::RemoveFrameFromAccessibleMap() { assert(m_refCount > 0); // must be alive to do this without using m_wMap diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx index d37bb8e7768d..b87f00ae6f00 100644 --- a/sw/source/core/access/acccontext.hxx +++ b/sw/source/core/access/acccontext.hxx @@ -59,6 +59,9 @@ class SwAccessibleContext : // 'externalized' and wants access to the protected members like // GetMap, GetChild, GetParent, and GetFrame. friend class SwAccessibleSelectionHelper; +#if OSL_DEBUG_LEVEL > 0 + friend class SwAccessibleMap; +#endif protected: mutable ::osl::Mutex m_Mutex; @@ -167,7 +170,6 @@ protected: virtual void InvalidateFocus_(); public: - void ClearMapPointer(); void FireAccessibleEvent( css::accessibility::AccessibleEventObject& rEvent ); protected: diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 5acee3a62889..1c51ac6fbc05 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1671,6 +1671,7 @@ SwAccessibleMap::~SwAccessibleMap() SwAccessibleDocument *pAcc = static_cast< SwAccessibleDocument * >( xAcc.get() ); pAcc->Dispose( true ); } +#if OSL_DEBUG_LEVEL > 0 if( mpFrameMap ) { SwAccessibleContextMap_Impl::iterator aIter = mpFrameMap->begin(); @@ -1680,12 +1681,12 @@ SwAccessibleMap::~SwAccessibleMap() if( xTmp.is() ) { SwAccessibleContext *pTmp = static_cast< SwAccessibleContext * >( xTmp.get() ); - // TODO is this still needed - pTmp->ClearMapPointer(); + assert(pTmp->GetMap() == nullptr); // must be disposed } ++aIter; } } +#endif { osl::MutexGuard aGuard( maMutex ); #if OSL_DEBUG_LEVEL > 0 _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
