sw/inc/accmap.hxx                |    2 
 sw/source/core/access/accmap.cxx |  426 +++++++++++++++++----------------------
 2 files changed, 192 insertions(+), 236 deletions(-)

New commits:
commit 8879903c0ad4eec56dfc3cccd34663492f200d84
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Tue Apr 22 15:07:00 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Apr 23 06:29:04 2025 +0200

    sw a11y: Use std::unordered_map::contains
    
    Change-Id: I2fe2a810cd310b1aad0d4d013456f7ffb131310c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184442
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index ca386b14c60b..e2101b29c54f 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -1993,7 +1993,7 @@ void SwAccessibleMap::RemoveContext( const SdrObject 
*pObj )
 
 bool SwAccessibleMap::Contains(const SwFrame *pFrame) const
 {
-    return (pFrame && maFrameMap.find(pFrame) != maFrameMap.end());
+    return pFrame && maFrameMap.contains(pFrame);
 }
 
 void SwAccessibleMap::A11yDispose( const SwFrame *pFrame,
commit baf2b5b523f721638b01f9842e5c30f36a329d49
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Tue Apr 22 14:57:59 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Apr 23 06:28:54 2025 +0200

    sw a11y: No longer use unique_ptr for frame map
    
    I can see no particular reason for using a
    std::unique_ptr<SwAccessibleContextMap> for
    SwAccessibleMap::mpFrameMap, instead of just a
    SwAccessibleContextMap.
    
    So far, an empty map was created if `mpFrameMap` was null
    in both, SwAccessibleMap::GetContextImpl and
    SwAccessibleMap::GetDocumentView_, and the member
    was reset in either the dtor or in
    SwAccessibleMap::RemoveContext when the map became empty.
    
    I don't see any particular reason to have an explicit
    null value (and check for it in multiple places) instead
    of simply having an empty map by default.
    Therefore, switch to using the latter, which simplifies
    the code.
    
    For most places, the previous null check can simply
    be dropped as the overall logic remains the same
    with an empty map (e.g. still nothing happens in case
    of an empty map in most methods because no corresponding
    entry is found in the empty map.), but keep an expclicit
    check for these cases:
    
    * At the beginning of SwAccessibleMap::BuildSelectedParas, replace
      the previous null check by checking for an empty map
      instead of just dropping the check, to avoid unnecessarily
      iterating over text frames.
    
    * In the SwAccessibleMap dtor, also replace the
      previous null check by a check whether the
      map is empty.
    
    Change-Id: I383b49fb84fc77ace80053355e9e69b144e6c72b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184441
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx
index 5bc2808e8ab5..73c3625c3491 100644
--- a/sw/inc/accmap.hxx
+++ b/sw/inc/accmap.hxx
@@ -79,7 +79,7 @@ class SwAccessibleMap final : public 
::accessibility::IAccessibleViewForwarder,
                 , public std::enable_shared_from_this<SwAccessibleMap>
 {
     ::osl::Mutex maEventMutex;
-    std::unique_ptr<SwAccessibleContextMap> mpFrameMap;
+    SwAccessibleContextMap maFrameMap;
     std::unique_ptr<SwAccessibleShapeMap_Impl> mpShapeMap;
 
     // The shape list is filled if an accessible shape is destroyed. It
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 2c82653a7830..ca386b14c60b 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -855,8 +855,8 @@ void SwAccessibleMap::FireEvent( const 
SwAccessibleEvent_Impl& rEvent )
     ::rtl::Reference < SwAccessibleContext > xAccImpl( rEvent.GetContext() );
     if (!xAccImpl.is() && rEvent.mpParentFrame != nullptr)
     {
-        SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(rEvent.mpParentFrame);
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(rEvent.mpParentFrame);
+        if (aIter != maFrameMap.end())
         {
             rtl::Reference < SwAccessibleContext > xContext( 
(*aIter).second.get() );
             if (xContext.is() && (xContext->getAccessibleRole() == 
AccessibleRole::PARAGRAPH
@@ -1241,44 +1241,41 @@ void SwAccessibleMap::InvalidateShapeInParaSelection()
     }
 
     //Checked for FlyFrame
-    if (mpFrameMap)
+    for (const auto& rIter : maFrameMap)
     {
-        for (const auto& rIter : *mpFrameMap)
+        const SwFrame *pFrame = rIter.first;
+        if(pFrame->IsFlyFrame())
         {
-            const SwFrame *pFrame = rIter.first;
-            if(pFrame->IsFlyFrame())
-            {
-                rtl::Reference<SwAccessibleContext> xAcc = rIter.second;
+            rtl::Reference<SwAccessibleContext> xAcc = rIter.second;
 
-                if(xAcc.is())
+            if(xAcc.is())
+            {
+                SwAccessibleFrameBase *pAccFrame = static_cast< 
SwAccessibleFrameBase * >(xAcc.get());
+                bool bFrameChanged = pAccFrame->SetSelectedState( true );
+                if (bFrameChanged)
                 {
-                    SwAccessibleFrameBase *pAccFrame = static_cast< 
SwAccessibleFrameBase * >(xAcc.get());
-                    bool bFrameChanged = pAccFrame->SetSelectedState( true );
-                    if (bFrameChanged)
+                    const SwFlyFrame *pFlyFrame = static_cast< const 
SwFlyFrame * >( pFrame );
+                    const SwFrameFormat *pFrameFormat = pFlyFrame->GetFormat();
+                    if (pFrameFormat)
                     {
-                        const SwFlyFrame *pFlyFrame = static_cast< const 
SwFlyFrame * >( pFrame );
-                        const SwFrameFormat *pFrameFormat = 
pFlyFrame->GetFormat();
-                        if (pFrameFormat)
+                        const SwFormatAnchor& rAnchor = 
pFrameFormat->GetAnchor();
+                        if( rAnchor.GetAnchorId() == RndStdIds::FLY_AS_CHAR )
                         {
-                            const SwFormatAnchor& rAnchor = 
pFrameFormat->GetAnchor();
-                            if( rAnchor.GetAnchorId() == 
RndStdIds::FLY_AS_CHAR )
+                            uno::Reference< XAccessible > xAccParent = 
pAccFrame->getAccessibleParent();
+                            if (xAccParent.is())
                             {
-                                uno::Reference< XAccessible > xAccParent = 
pAccFrame->getAccessibleParent();
-                                if (xAccParent.is())
+                                uno::Reference< XAccessibleContext > 
xAccContext = xAccParent->getAccessibleContext();
+                                if(xAccContext.is() && 
(xAccContext->getAccessibleRole() == AccessibleRole::PARAGRAPH ||
+                                                         
xAccContext->getAccessibleRole() == AccessibleRole::BLOCK_QUOTE))
                                 {
-                                    uno::Reference< XAccessibleContext > 
xAccContext = xAccParent->getAccessibleContext();
-                                    if(xAccContext.is() && 
(xAccContext->getAccessibleRole() == AccessibleRole::PARAGRAPH ||
-                                                             
xAccContext->getAccessibleRole() == AccessibleRole::BLOCK_QUOTE))
+                                    SwAccessibleParagraph* pAccPara = 
static_cast< SwAccessibleParagraph *>(xAccContext.get());
+                                    if(pAccFrame->IsSelectedInDoc())
                                     {
-                                        SwAccessibleParagraph* pAccPara = 
static_cast< SwAccessibleParagraph *>(xAccContext.get());
-                                        if(pAccFrame->IsSelectedInDoc())
-                                        {
-                                            m_setParaAdd.insert(pAccPara);
-                                        }
-                                        else if(m_setParaAdd.count(pAccPara) 
== 0)
-                                        {
-                                            m_setParaRemove.insert(pAccPara);
-                                        }
+                                        m_setParaAdd.insert(pAccPara);
+                                    }
+                                    else if(m_setParaAdd.count(pAccPara) == 0)
+                                    {
+                                        m_setParaRemove.insert(pAccPara);
                                     }
                                 }
                             }
@@ -1321,10 +1318,10 @@ void SwAccessibleMap::InvalidateShapeInParaSelection()
                         pFrame = SwIterator<SwFrame, 
SwTableFormat>(*pFormat).First();
                     }
 
-                    if( pFrame && mpFrameMap)
+                    if (pFrame)
                     {
-                        SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(pFrame);
-                        if( aIter != mpFrameMap->end() )
+                        SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(pFrame);
+                        if (aIter != maFrameMap.end())
                         {
                             rtl::Reference < SwAccessibleContext > xAcc = 
(*aIter).second;
                             bool isChanged = false;
@@ -1376,7 +1373,7 @@ void SwAccessibleMap::InvalidateShapeInParaSelection()
     }
     mapTemp.clear();
 
-    if( !(bMarkChanged && mpFrameMap))
+    if (!bMarkChanged)
         return;
 
     for (SwAccessibleContext* pAccPara : vecAdd)
@@ -1564,11 +1561,11 @@ SwAccessibleMap::~SwAccessibleMap()
     DBG_TESTSOLARMUTEX();
 
     rtl::Reference < SwAccessibleContext > xAcc;
-    if( mpFrameMap )
+    if (!maFrameMap.empty())
     {
         const SwRootFrame* pRootFrame = GetShell().GetLayout();
-        SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pRootFrame);
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = maFrameMap.find(pRootFrame);
+        if (aIter != maFrameMap.end())
             xAcc = (*aIter).second;
         if( !xAcc.is() )
             assert(false); // let's hope this can't happen? the vcl::Window 
apparently owns the top-level
@@ -1582,21 +1579,17 @@ SwAccessibleMap::~SwAccessibleMap()
         pAcc->Dispose( true );
     }
 #if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
-    if( mpFrameMap )
+    for (const auto& rIter : maFrameMap)
     {
-        for (const auto& rIter : *mpFrameMap)
-        {
-            rtl::Reference <SwAccessibleContext> xTmp = rIter.second;
-            if( xTmp.is() )
-                assert(xTmp->GetMap() == nullptr); // must be disposed
-        }
+        rtl::Reference <SwAccessibleContext> xTmp = rIter.second;
+        if( xTmp.is() )
+            assert(xTmp->GetMap() == nullptr); // must be disposed
     }
 #endif
-    assert((!mpFrameMap || mpFrameMap->empty()) &&
-            "Frame map should be empty after disposing the root frame");
+
+    assert(maFrameMap.empty() && "Frame map should be empty after disposing 
the root frame");
     assert((!mpShapeMap || mpShapeMap->empty()) &&
             "Object map should be empty after disposing the root frame");
-    mpFrameMap.reset();
     mpShapeMap.reset();
     mvShapes.clear();
     mpSelectedParas.reset();
@@ -1621,12 +1614,9 @@ rtl::Reference<SwAccessibleContext> 
SwAccessibleMap::GetDocumentView_(
     rtl::Reference < SwAccessibleContext > xAcc;
     bool bSetVisArea = false;
 
-    if( !mpFrameMap )
-        mpFrameMap.reset(new SwAccessibleContextMap);
-
     const SwRootFrame* pRootFrame = GetShell().GetLayout();
-    SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pRootFrame);
-    if( aIter != mpFrameMap->end() )
+    SwAccessibleContextMap::iterator aIter = maFrameMap.find(pRootFrame);
+    if (aIter != maFrameMap.end())
         xAcc = (*aIter).second;
     if( xAcc.is() )
     {
@@ -1639,13 +1629,13 @@ rtl::Reference<SwAccessibleContext> 
SwAccessibleMap::GetDocumentView_(
         else
             xAcc = new SwAccessibleDocument(shared_from_this());
 
-        if( aIter != mpFrameMap->end() )
+        if (aIter != maFrameMap.end())
         {
             (*aIter).second = xAcc.get();
         }
         else
         {
-            mpFrameMap->emplace( pRootFrame, xAcc );
+            maFrameMap.emplace(pRootFrame, xAcc);
         }
     }
 
@@ -1688,108 +1678,103 @@ rtl::Reference<SwAccessibleContext> 
SwAccessibleMap::GetContextImpl(const SwFram
     rtl::Reference < SwAccessibleContext > xOldCursorAcc;
     bool bOldShapeSelected = false;
 
-    if( !mpFrameMap && bCreate )
-        mpFrameMap.reset(new SwAccessibleContextMap);
-    if( mpFrameMap )
-    {
-        SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pFrame);
-        if( aIter != mpFrameMap->end() )
-            xAcc = (*aIter).second;
+    SwAccessibleContextMap::iterator aIter = maFrameMap.find(pFrame);
+    if (aIter != maFrameMap.end())
+        xAcc = (*aIter).second;
 
-        if( !xAcc.is() && bCreate )
+    if (!xAcc.is() && bCreate)
+    {
+        switch( pFrame->GetType() )
         {
-            switch( pFrame->GetType() )
+        case SwFrameType::Txt:
+            xAcc = new SwAccessibleParagraph(shared_from_this(),
+                            static_cast< const SwTextFrame& >( *pFrame ) );
+            break;
+        case SwFrameType::Header:
+            xAcc = new SwAccessibleHeaderFooter(shared_from_this(),
+                            static_cast< const SwHeaderFrame *>( pFrame ) );
+            break;
+        case SwFrameType::Footer:
+            xAcc = new SwAccessibleHeaderFooter(shared_from_this(),
+                            static_cast< const SwFooterFrame *>( pFrame ) );
+            break;
+        case SwFrameType::Ftn:
             {
-            case SwFrameType::Txt:
-                xAcc = new SwAccessibleParagraph(shared_from_this(),
-                                static_cast< const SwTextFrame& >( *pFrame ) );
-                break;
-            case SwFrameType::Header:
-                xAcc = new SwAccessibleHeaderFooter(shared_from_this(),
-                                static_cast< const SwHeaderFrame *>( pFrame ) 
);
-                break;
-            case SwFrameType::Footer:
-                xAcc = new SwAccessibleHeaderFooter(shared_from_this(),
-                                static_cast< const SwFooterFrame *>( pFrame ) 
);
-                break;
-            case SwFrameType::Ftn:
-                {
-                    const SwFootnoteFrame *pFootnoteFrame =
-                        static_cast < const SwFootnoteFrame * >( pFrame );
-                    bool bIsEndnote =
-                        SwAccessibleFootnote::IsEndnote( pFootnoteFrame );
-                    xAcc = new SwAccessibleFootnote(shared_from_this(), 
bIsEndnote,
-                                /*(bIsEndnote ? mnEndnote++ : mnFootnote++),*/
-                                pFootnoteFrame );
-                }
-                break;
-            case SwFrameType::Fly:
+                const SwFootnoteFrame *pFootnoteFrame =
+                    static_cast < const SwFootnoteFrame * >( pFrame );
+                bool bIsEndnote =
+                    SwAccessibleFootnote::IsEndnote( pFootnoteFrame );
+                xAcc = new SwAccessibleFootnote(shared_from_this(), bIsEndnote,
+                            /*(bIsEndnote ? mnEndnote++ : mnFootnote++),*/
+                            pFootnoteFrame );
+            }
+            break;
+        case SwFrameType::Fly:
+            {
+                const SwFlyFrame *pFlyFrame =
+                    static_cast < const SwFlyFrame * >( pFrame );
+                switch( SwAccessibleFrameBase::GetNodeType( pFlyFrame ) )
                 {
-                    const SwFlyFrame *pFlyFrame =
-                        static_cast < const SwFlyFrame * >( pFrame );
-                    switch( SwAccessibleFrameBase::GetNodeType( pFlyFrame ) )
-                    {
-                    case SwNodeType::Grf:
-                        xAcc = new SwAccessibleGraphic(shared_from_this(), 
pFlyFrame );
-                        break;
-                    case SwNodeType::Ole:
-                        xAcc = new 
SwAccessibleEmbeddedObject(shared_from_this(), pFlyFrame );
-                        break;
-                    default:
-                        xAcc = new SwAccessibleTextFrame(shared_from_this(), 
*pFlyFrame );
-                        break;
-                    }
+                case SwNodeType::Grf:
+                    xAcc = new SwAccessibleGraphic(shared_from_this(), 
pFlyFrame );
+                    break;
+                case SwNodeType::Ole:
+                    xAcc = new SwAccessibleEmbeddedObject(shared_from_this(), 
pFlyFrame );
+                    break;
+                default:
+                    xAcc = new SwAccessibleTextFrame(shared_from_this(), 
*pFlyFrame );
+                    break;
                 }
-                break;
-            case SwFrameType::Cell:
-                xAcc = new SwAccessibleCell(shared_from_this(),
-                                static_cast< const SwCellFrame *>( pFrame ) );
-                break;
-            case SwFrameType::Tab:
-                xAcc = new SwAccessibleTable(shared_from_this(),
-                                static_cast< const SwTabFrame *>( pFrame ) );
-                break;
-            case SwFrameType::Page:
-                OSL_ENSURE(GetShell().IsPreview(),
-                            "accessible page frames only in PagePreview" );
-                xAcc = new SwAccessiblePage(shared_from_this(), pFrame);
-                break;
-            default: break;
             }
-            assert(xAcc.is());
+            break;
+        case SwFrameType::Cell:
+            xAcc = new SwAccessibleCell(shared_from_this(),
+                            static_cast< const SwCellFrame *>( pFrame ) );
+            break;
+        case SwFrameType::Tab:
+            xAcc = new SwAccessibleTable(shared_from_this(),
+                            static_cast< const SwTabFrame *>( pFrame ) );
+            break;
+        case SwFrameType::Page:
+            OSL_ENSURE(GetShell().IsPreview(),
+                        "accessible page frames only in PagePreview" );
+            xAcc = new SwAccessiblePage(shared_from_this(), pFrame);
+            break;
+        default: break;
+        }
+        assert(xAcc.is());
 
-            if( aIter != mpFrameMap->end() )
-            {
-                (*aIter).second = xAcc.get();
-            }
-            else
-            {
-                mpFrameMap->emplace( pFrame, xAcc );
-            }
+        if (aIter != maFrameMap.end())
+        {
+            (*aIter).second = xAcc.get();
+        }
+        else
+        {
+            maFrameMap.emplace(pFrame, xAcc);
+        }
 
-            if (xAcc->HasCursor() &&
-                !AreInSameTable( mxCursorContext, pFrame ) )
-            {
-                // If the new context has the focus, and if we know
-                // another context that had the focus, then the focus
-                // just moves from the old context to the new one. We
-                // then have to send a focus event and a caret event for
-                // the old context. We have to do that now,
-                // because after we have left this method, anyone might
-                // call getStates for the new context and will get a
-                // focused state then. Sending the focus changes event
-                // after that seems to be strange. However, we cannot
-                // send a focus event for the new context now, because
-                // no one except us knows it. In any case, we remember
-                // the new context as the one that has the focus
-                // currently.
-
-                xOldCursorAcc = mxCursorContext;
-                mxCursorContext = xAcc.get();
-
-                bOldShapeSelected = mbShapeSelected;
-                mbShapeSelected = false;
-            }
+        if (xAcc->HasCursor() &&
+            !AreInSameTable( mxCursorContext, pFrame ) )
+        {
+            // If the new context has the focus, and if we know
+            // another context that had the focus, then the focus
+            // just moves from the old context to the new one. We
+            // then have to send a focus event and a caret event for
+            // the old context. We have to do that now,
+            // because after we have left this method, anyone might
+            // call getStates for the new context and will get a
+            // focused state then. Sending the focus changes event
+            // after that seems to be strange. However, we cannot
+            // send a focus event for the new context now, because
+            // no one except us knows it. In any case, we remember
+            // the new context as the one that has the focus
+            // currently.
+
+            xOldCursorAcc = mxCursorContext;
+            mxCursorContext = xAcc.get();
+
+            bOldShapeSelected = mbShapeSelected;
+            mbShapeSelected = false;
         }
     }
 
@@ -1953,14 +1938,11 @@ void SwAccessibleMap::RemoveContext( const SwFrame 
*pFrame )
 {
     DBG_TESTSOLARMUTEX();
 
-    if( !mpFrameMap )
+    SwAccessibleContextMap::iterator aIter = maFrameMap.find(pFrame);
+    if (aIter == maFrameMap.end())
         return;
 
-    SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pFrame);
-    if( aIter == mpFrameMap->end() )
-        return;
-
-    mpFrameMap->erase( aIter );
+    maFrameMap.erase(aIter);
 
     if (mpSelectedFrameMap)
     {
@@ -1983,11 +1965,6 @@ void SwAccessibleMap::RemoveContext( const SwFrame 
*pFrame )
             mxCursorContext = xOldAcc.get();
         }
     }
-
-    if( mpFrameMap->empty() )
-    {
-        mpFrameMap.reset();
-    }
 }
 
 void SwAccessibleMap::RemoveContext( const SdrObject *pObj )
@@ -2016,7 +1993,7 @@ void SwAccessibleMap::RemoveContext( const SdrObject 
*pObj )
 
 bool SwAccessibleMap::Contains(const SwFrame *pFrame) const
 {
-    return (pFrame && mpFrameMap && mpFrameMap->find(pFrame) != 
mpFrameMap->end());
+    return (pFrame && maFrameMap.find(pFrame) != maFrameMap.end());
 }
 
 void SwAccessibleMap::A11yDispose( const SwFrame *pFrame,
@@ -2047,13 +2024,13 @@ void SwAccessibleMap::A11yDispose( const SwFrame 
*pFrame,
 
     // get accessible context for frame
     // First of all look for an accessible context for a frame
-    if( aFrameOrObj.GetSwFrame() && mpFrameMap )
+    if (aFrameOrObj.GetSwFrame())
     {
-        SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+        if (aIter != maFrameMap.end())
             xAccImpl = (*aIter).second;
     }
-    if( !xAccImpl.is() && mpFrameMap )
+    if (!xAccImpl.is())
     {
         // If there is none, look if the parent is accessible.
         const SwFrame *pParent =
@@ -2062,8 +2039,8 @@ void SwAccessibleMap::A11yDispose( const SwFrame *pFrame,
 
         if( pParent )
         {
-            SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pParent);
-            if( aIter != mpFrameMap->end() )
+            SwAccessibleContextMap::iterator aIter = maFrameMap.find(pParent);
+            if (aIter != maFrameMap.end())
                 xParentAccImpl = (*aIter).second;
         }
     }
@@ -2147,32 +2124,29 @@ void SwAccessibleMap::InvalidatePosOrSize( const 
SwFrame *pFrame,
     ::rtl::Reference< SwAccessibleContext > xAccImpl;
     ::rtl::Reference< SwAccessibleContext > xParentAccImpl;
     const SwFrame *pParent =nullptr;
-    if( mpFrameMap )
+    if (aFrameOrObj.GetSwFrame())
     {
-        if( aFrameOrObj.GetSwFrame() )
+        SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+        if (aIter != maFrameMap.end())
         {
-            SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-            if( aIter != mpFrameMap->end() )
-            {
-                // If there is an accessible object already it is
-                // notified directly.
-                xAccImpl = (*aIter).second;
-            }
+            // If there is an accessible object already it is
+            // notified directly.
+            xAccImpl = (*aIter).second;
         }
-        if( !xAccImpl.is() )
-        {
-            // Otherwise we look if the parent is accessible.
-            // If not, there is nothing to do.
-            pParent =
-                SwAccessibleFrame::GetParent( aFrameOrObj,
-                                              GetShell().IsPreview());
+    }
+    if (!xAccImpl.is())
+    {
+        // Otherwise we look if the parent is accessible.
+        // If not, there is nothing to do.
+        pParent =
+            SwAccessibleFrame::GetParent( aFrameOrObj,
+                                          GetShell().IsPreview());
 
-            if( pParent )
-            {
-                SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(pParent);
-                if( aIter != mpFrameMap->end() )
-                    xParentAccImpl = (*aIter).second;
-            }
+        if (pParent)
+        {
+            SwAccessibleContextMap::iterator aIter = maFrameMap.find(pParent);
+            if (aIter != maFrameMap.end())
+                xParentAccImpl = (*aIter).second;
         }
     }
 
@@ -2268,12 +2242,9 @@ void SwAccessibleMap::InvalidateContent( const SwFrame 
*pFrame )
     if (!aFrameOrObj.IsAccessible(GetShell().IsPreview()))
         return;
 
-    if (!mpFrameMap)
-        return;
-
     rtl::Reference < SwAccessibleContext > xAcc;
-    SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-    if( aIter != mpFrameMap->end() )
+    SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+    if (aIter != maFrameMap.end())
         xAcc = (*aIter).second;
 
     if( !xAcc.is() )
@@ -2301,12 +2272,9 @@ void SwAccessibleMap::InvalidateAttr( const SwTextFrame& 
rTextFrame )
     if (!aFrameOrObj.IsAccessible(GetShell().IsPreview()))
         return;
 
-    if (!mpFrameMap)
-        return;
-
     rtl::Reference < SwAccessibleContext > xAcc;
-    SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-    if( aIter != mpFrameMap->end() )
+    SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+    if (aIter != maFrameMap.end())
         xAcc = (*aIter).second;
 
     if( !xAcc.is() )
@@ -2367,10 +2335,10 @@ void SwAccessibleMap::InvalidateCursorPosition( const 
SwFrame *pFrame )
     mbShapeSelected = bShapeSelected;
 
     rtl::Reference <SwAccessibleContext> xAcc;
-    if( aFrameOrObj.GetSwFrame() && mpFrameMap )
+    if (aFrameOrObj.GetSwFrame())
     {
-        SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+        if (aIter != maFrameMap.end())
             xAcc = (*aIter).second;
         else
         {
@@ -2385,8 +2353,8 @@ void SwAccessibleMap::InvalidateCursorPosition( const 
SwFrame *pFrame )
                 InvalidatePosOrSize(aFrameOrObj.GetSwFrame(), nullptr, 
nullptr, rcEmpty);
             }
 
-            aIter = mpFrameMap->find( aFrameOrObj.GetSwFrame() );
-            if( aIter != mpFrameMap->end() )
+            aIter = maFrameMap.find(aFrameOrObj.GetSwFrame());
+            if (aIter != maFrameMap.end())
             {
                 xAcc = (*aIter).second;
             }
@@ -2589,12 +2557,9 @@ void SwAccessibleMap::InvalidateRelationSet_( const 
SwFrame* pFrame,
     if (!aFrameOrObj.IsAccessible(GetShell().IsPreview()))
         return;
 
-    if (!mpFrameMap)
-        return;
-
     rtl::Reference < SwAccessibleContext > xAcc;
-    SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-    if( aIter != mpFrameMap->end() )
+    SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+    if (aIter != maFrameMap.end())
     {
         xAcc = (*aIter).second;
     }
@@ -2645,12 +2610,9 @@ void SwAccessibleMap::InvalidateParaTextSelection( const 
SwTextFrame& _rTextFram
     if (!aFrameOrObj.IsAccessible(GetShell().IsPreview()))
         return;
 
-    if (!mpFrameMap)
-        return;
-
     rtl::Reference < SwAccessibleContext > xAcc;
-    SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-    if( aIter != mpFrameMap->end() )
+    SwAccessibleContextMap::iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+    if (aIter != maFrameMap.end())
     {
         xAcc = (*aIter).second;
     }
@@ -2685,16 +2647,13 @@ sal_Int32 SwAccessibleMap::GetChildIndex( const 
SwFrame& rParentFrame,
     SwAccessibleChild aFrameOrObj( &rParentFrame );
     if (aFrameOrObj.IsAccessible(GetShell().IsPreview()))
     {
-        if( mpFrameMap )
+        SwAccessibleContextMap::const_iterator aIter = 
maFrameMap.find(aFrameOrObj.GetSwFrame());
+        if (aIter != maFrameMap.end())
         {
-            SwAccessibleContextMap::iterator aIter = 
mpFrameMap->find(aFrameOrObj.GetSwFrame());
-            if( aIter != mpFrameMap->end() )
-            {
-                rtl::Reference<SwAccessibleContext> xAcc = (*aIter).second;
-                if (xAcc.is())
-                    nIndex = 
xAcc->GetChildIndex(const_cast<SwAccessibleMap&>(*this),
-                                                 SwAccessibleChild(&rChild));
-            }
+            rtl::Reference<SwAccessibleContext> xAcc = (*aIter).second;
+            if (xAcc.is())
+                nIndex = 
xAcc->GetChildIndex(const_cast<SwAccessibleMap&>(*this),
+                                             SwAccessibleChild(&rChild));
         }
     }
 
@@ -2723,10 +2682,10 @@ void SwAccessibleMap::UpdatePreview( const 
std::vector<std::unique_ptr<PreviewPa
     rtl::Reference < SwAccessibleContext > xAcc;
 
     const SwPageFrame *pSelPage = mpPreview->GetSelPage();
-    if( pSelPage && mpFrameMap )
+    if (pSelPage)
     {
-        SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pSelPage);
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = maFrameMap.find(pSelPage);
+        if (aIter != maFrameMap.end())
             xAcc = (*aIter).second;
     }
 
@@ -2748,10 +2707,10 @@ void SwAccessibleMap::InvalidatePreviewSelection( 
sal_uInt16 nSelPage )
     rtl::Reference < SwAccessibleContext > xAcc;
 
     const SwPageFrame *pSelPage = mpPreview->GetSelPage();
-    if( pSelPage && mpFrameMap )
+    if (pSelPage)
     {
-        SwAccessibleContextMap::iterator aIter = mpFrameMap->find(pSelPage);
-        if( aIter != mpFrameMap->end() )
+        SwAccessibleContextMap::iterator aIter = maFrameMap.find(pSelPage);
+        if (aIter != maFrameMap.end())
             xAcc = (*aIter).second;
     }
 
@@ -3008,10 +2967,8 @@ Size SwAccessibleMap::GetPreviewPageSize(sal_uInt16 
const nPreviewPageNum) const
 std::unique_ptr<SwAccessibleSelectedParas_Impl> 
SwAccessibleMap::BuildSelectedParas()
 {
     // no accessible contexts, no selection
-    if ( !mpFrameMap )
-    {
+    if (maFrameMap.empty())
         return nullptr;
-    }
 
     // get cursor as an instance of its base class <SwPaM>
     SwPaM* pCursor( nullptr );
@@ -3060,9 +3017,8 @@ std::unique_ptr<SwAccessibleSelectedParas_Impl> 
SwAccessibleMap::BuildSelectedPa
                     for( SwTextFrame* pTextFrame = aIter.First(); pTextFrame; 
pTextFrame = aIter.Next() )
                     {
                             unotools::WeakReference < SwAccessibleContext > 
xWeakAcc;
-                            SwAccessibleContextMap::iterator aMapIter
-                                = mpFrameMap->find(pTextFrame);
-                            if( aMapIter != mpFrameMap->end() )
+                            SwAccessibleContextMap::iterator aMapIter = 
maFrameMap.find(pTextFrame);
+                            if (aMapIter != maFrameMap.end())
                             {
                                 xWeakAcc = (*aMapIter).second;
                                 SwAccessibleParaSelection aDataEntry(

Reply via email to