sd/source/ui/dlg/tpaction.cxx            |    4 
 sd/source/ui/func/fuconstr.cxx           |   10 +
 sd/source/ui/func/fucopy.cxx             |   14 +-
 sd/source/ui/func/fudraw.cxx             |   17 +--
 sd/source/ui/func/fuediglu.cxx           |    3 
 sd/source/ui/func/fuinsert.cxx           |    4 
 sd/source/ui/func/fuline.cxx             |    2 
 sd/source/ui/func/fumorph.cxx            |    2 
 sd/source/ui/func/fupoor.cxx             |    7 -
 sd/source/ui/func/fusel.cxx              |   19 ++-
 sd/source/ui/func/futempl.cxx            |    3 
 sd/source/ui/func/futext.cxx             |   16 +--
 sd/source/ui/func/futhes.cxx             |    5 
 sd/source/ui/func/futransf.cxx           |    7 -
 sd/source/ui/func/fuvect.cxx             |    2 
 sd/source/ui/func/smarttag.cxx           |    3 
 sd/source/ui/view/Outliner.cxx           |    7 -
 sd/source/ui/view/drawview.cxx           |    5 
 sd/source/ui/view/drbezob.cxx            |    5 
 sd/source/ui/view/drviews1.cxx           |   10 -
 sd/source/ui/view/drviews2.cxx           |   27 +----
 sd/source/ui/view/drviews3.cxx           |   12 --
 sd/source/ui/view/drviews4.cxx           |   16 +--
 sd/source/ui/view/drviews6.cxx           |    7 -
 sd/source/ui/view/drviews7.cxx           |   13 +-
 sd/source/ui/view/drviews8.cxx           |    4 
 sd/source/ui/view/drviews9.cxx           |    7 -
 sd/source/ui/view/drviewsa.cxx           |    6 -
 sd/source/ui/view/drviewse.cxx           |   17 +--
 sd/source/ui/view/drviewsf.cxx           |   22 ++--
 sd/source/ui/view/drviewsg.cxx           |    3 
 sd/source/ui/view/sdview.cxx             |   18 ++-
 sd/source/ui/view/sdview2.cxx            |   34 +++---
 sd/source/ui/view/sdview3.cxx            |    7 -
 sd/source/ui/view/sdview5.cxx            |    6 -
 sd/source/ui/view/viewoverlaymanager.cxx |    3 
 sd/source/ui/view/viewshe3.cxx           |    3 
 sd/source/ui/view/viewshel.cxx           |    5 
 svx/source/dialog/graphctl.cxx           |    6 -
 svx/source/dialog/imapwnd.cxx            |    2 
 svx/source/engine3d/view3d.cxx           |   89 +++++++++-------
 svx/source/engine3d/view3d1.cxx          |    9 -
 svx/source/svdraw/svddrgmt.cxx           |   40 ++++---
 svx/source/svdraw/svddrgv.cxx            |   30 +++--
 svx/source/svdraw/svdedtv.cxx            |   37 +++----
 svx/source/svdraw/svdedtv1.cxx           |  132 ++++++++++++++-----------
 svx/source/svdraw/svdedtv2.cxx           |  163 ++++++++++++++++---------------
 svx/source/svdraw/svdedxv.cxx            |   14 +-
 svx/source/svdraw/svdglev.cxx            |   40 ++++---
 svx/source/svdraw/svdmrkv.cxx            |  148 ++++++++++++++++------------
 svx/source/svdraw/svdmrkv1.cxx           |   77 ++++++++------
 svx/source/svdraw/svdpoev.cxx            |   70 +++++++------
 svx/source/svdraw/svdundo.cxx            |   12 +-
 svx/source/svdraw/svdview.cxx            |   32 +++---
 svx/source/svdraw/svdxcgv.cxx            |   33 +++---
 55 files changed, 733 insertions(+), 556 deletions(-)

New commits:
commit 5da4acd4818741c3b68be211bd7a21e4c080ed4d
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu May 30 13:39:31 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri May 31 09:25:03 2024 +0200

    sd: Reduce number of calls to GetMarkedObjectList()
    
    From 211 to 129
    
    Change-Id: I2ccb4261f5f842e7f1514bc0c8eab2591ead173e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168256
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx
index f79005b7ef1d..3d0f391edc17 100644
--- a/sd/source/ui/dlg/tpaction.cxx
+++ b/sd/source/ui/dlg/tpaction.cxx
@@ -157,9 +157,9 @@ void SdTPAction::Construct()
     SdrGrafObj* pGrafObj = nullptr;
     bool        bOLEAction = false;
 
-    if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if ( rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sd/source/ui/func/fuconstr.cxx b/sd/source/ui/func/fuconstr.cxx
index b5e4b1b15bb0..01f56174980d 100644
--- a/sd/source/ui/func/fuconstr.cxx
+++ b/sd/source/ui/func/fuconstr.cxx
@@ -85,13 +85,14 @@ bool FuConstruct::MouseButtonDown(const MouseEvent& rMEvt)
 
         SdrHdl* pHdl = mpView->PickHandle(aMDPos);
 
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
         if ( pHdl != nullptr || mpView->IsMarkedHit(aMDPos, nHitLog) )
         {
             sal_uInt16 nDrgLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() );
             mpView->BegDragObj(aMDPos, nullptr, pHdl, nDrgLog);
             bReturn = true;
         }
-        else if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+        else if ( rMarkList.GetMarkCount() != 0 )
         {
             mpView->UnmarkAll();
             bReturn = true;
@@ -166,7 +167,8 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt)
         mpWindow->ReleaseMouse();
         sal_uInt16 nDrgLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() );
 
-        if ( mpView->GetMarkedObjectList().GetMarkCount() == 0 )
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() == 0 )
         {
             SdrPageView* pPV;
             sal_uInt16 nHitLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(HITPIX,0)).Width() );
@@ -187,9 +189,9 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt)
             // toggle between selection and rotation
             SdrObject* pSingleObj = nullptr;
 
-            if (mpView->GetMarkedObjectList().GetMarkCount()==1)
+            if (rMarkList.GetMarkCount()==1)
             {
-                pSingleObj = 
mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
             }
 
             const bool bTiledRendering = 
comphelper::LibreOfficeKit::isActive();
diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx
index 5df9f55ecfad..4976683292ec 100644
--- a/sd/source/ui/func/fucopy.cxx
+++ b/sd/source/ui/func/fucopy.cxx
@@ -62,11 +62,12 @@ rtl::Reference<FuPoor> FuCopy::Create( ViewShell* pViewSh, 
::sd::Window* pWin, :
 
 void FuCopy::DoExecute( SfxRequest& rReq )
 {
-    if( mpView->GetMarkedObjectList().GetMarkCount() == 0 )
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() == 0 )
         return;
 
     // Undo
-    OUString aString = mpView->GetMarkedObjectList().GetMarkDescription() +
+    OUString aString = rMarkList.GetMarkDescription() +
         " " + SdResId( STR_UNDO_COPYOBJECTS );
     mpView->BegUndo( aString );
 
@@ -174,8 +175,7 @@ void FuCopy::DoExecute( SfxRequest& rReq )
         bWaiting = true;
     }
 
-    const SdrMarkList   aMarkList( mpView->GetMarkedObjectList() );
-    const size_t nMarkCount = aMarkList.GetMarkCount();
+    const size_t nMarkCount = rMarkList.GetMarkCount();
     SdrObject*          pObj = nullptr;
 
     // calculate number of possible copies
@@ -212,8 +212,8 @@ void FuCopy::DoExecute( SfxRequest& rReq )
         mpView->CopyMarked();
 
         // get newly selected objects
-        SdrMarkList aCopyMarkList( mpView->GetMarkedObjectList() );
-        const size_t nCopyMarkCount = aMarkList.GetMarkCount();
+        SdrMarkList aCopyMarkList( rMarkList );
+        const size_t nCopyMarkCount = rMarkList.GetMarkCount();
 
         // set protection flags at marked copies to null
         for( size_t j = 0; j < nCopyMarkCount; ++j )
@@ -244,7 +244,7 @@ void FuCopy::DoExecute( SfxRequest& rReq )
         {
             for( size_t j = 0; j < nMarkCount; ++j )
             {
-                SdrObject* pSrcObj = aMarkList.GetMark( j )->GetMarkedSdrObj();
+                SdrObject* pSrcObj = rMarkList.GetMark( j )->GetMarkedSdrObj();
                 SdrObject* pDstObj = aCopyMarkList.GetMark( j 
)->GetMarkedSdrObj();
 
                 if( pSrcObj && pDstObj &&
diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx
index a65bae0a6fa8..3e36d5d78f76 100644
--- a/sd/source/ui/func/fudraw.cxx
+++ b/sd/source/ui/func/fudraw.cxx
@@ -317,6 +317,7 @@ bool FuDraw::MouseButtonUp(const MouseEvent& rMEvt)
 bool FuDraw::KeyInput(const KeyEvent& rKEvt)
 {
     bool bReturn = false;
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
 
     switch ( rKEvt.GetKeyCode().GetCode() )
     {
@@ -369,7 +370,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                 if(!mpView->MarkNextObj( !aCode.IsShift() ))
                 {
                     //If there is only one object, don't do the UnmarkAllObj() 
& MarkNextObj().
-                    if ( mpView->HasMultipleMarkableObjects() && 
mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+                    if ( mpView->HasMultipleMarkableObjects() && 
rMarkList.GetMarkCount() != 0 )
                     {
                         // No next object: go over open end and get first from
                         // the other side
@@ -378,7 +379,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                     }
                 }
 
-                if(mpView->GetMarkedObjectList().GetMarkCount() != 0)
+                if(rMarkList.GetMarkCount() != 0)
                     mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow);
 
                 bReturn = true;
@@ -396,7 +397,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                 mpView->UnmarkAllObj();
                 mpView->MarkNextObj();
 
-                if(mpView->GetMarkedObjectList().GetMarkCount() != 0)
+                if(rMarkList.GetMarkCount() != 0)
                     mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow);
 
                 bReturn = true;
@@ -414,7 +415,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                 mpView->UnmarkAllObj();
                 mpView->MarkNextObj(true);
 
-                if(mpView->GetMarkedObjectList().GetMarkCount() != 0)
+                if(rMarkList.GetMarkCount() != 0)
                     mpView->MakeVisible(mpView->GetAllMarkedRect(), *mpWindow);
 
                 bReturn = true;
@@ -628,10 +629,9 @@ void FuDraw::DoubleClick(const MouseEvent& rMEvt)
 {
     sal_uInt16 nHitLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(HITPIX,0)).Width() );
 
-    if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if ( rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
-
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrMark* pMark = rMarkList.GetMark(0);
@@ -773,6 +773,7 @@ bool FuDraw::SetHelpText(const SdrObject* pObj, const 
Point& rPosPixel, const Sd
 bool FuDraw::cancel()
 {
     bool bReturn = false;
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
 
     if ( mpView->IsAction() )
     {
@@ -790,7 +791,7 @@ bool FuDraw::cancel()
         rBindings.Invalidate( SID_PARASPACE_INCREASE );
         rBindings.Invalidate( SID_PARASPACE_DECREASE );
     }
-    else if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+    else if ( rMarkList.GetMarkCount() != 0 )
     {
         const SdrHdlList& rHdlList = mpView->GetHdlList();
         SdrHdl* pHdl = rHdlList.GetFocusHdl();
diff --git a/sd/source/ui/func/fuediglu.cxx b/sd/source/ui/func/fuediglu.cxx
index 15aea9cc0e2e..442c0fbb7e61 100644
--- a/sd/source/ui/func/fuediglu.cxx
+++ b/sd/source/ui/func/fuediglu.cxx
@@ -167,13 +167,14 @@ bool FuEditGluePoints::MouseButtonDown(const MouseEvent& 
rMEvt)
                 }
             }
 
+            const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
             if (bMarked &&
                 (!rMEvt.IsShift() || eHit == SdrHitKind::MarkedObject))
             {
                 // move object
                 mpView->BegDragObj(aMDPos, nullptr, aVEvt.mpHdl, nDrgLog);
             }
-            else if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+            else if (rMarkList.GetMarkCount() != 0)
             {
                 // select gluepoint
                 if (!rMEvt.IsShift())
diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index d0fde55e4b72..55dfa5cf105d 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -549,10 +549,10 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq )
                     }
                 }
 
-                if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+                const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+                if ( rMarkList.GetMarkCount() != 0 )
                 {
                     // as an empty OLE object available?
-                    const SdrMarkList& rMarkList = 
mpView->GetMarkedObjectList();
 
                     if (rMarkList.GetMarkCount() == 1)
                     {
diff --git a/sd/source/ui/func/fuline.cxx b/sd/source/ui/func/fuline.cxx
index 640a5bfc5b09..0e8eb78f39e4 100644
--- a/sd/source/ui/func/fuline.cxx
+++ b/sd/source/ui/func/fuline.cxx
@@ -64,7 +64,7 @@ void FuLine::DoExecute( SfxRequest& rReq )
     SfxItemSet aNewAttr( mpDoc->GetPool() );
     mpView->GetAttributes( aNewAttr );
 
-    bool bHasMarked = mpView->GetMarkedObjectList().GetMarkCount() != 0;
+    bool bHasMarked = rMarkList.GetMarkCount() != 0;
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
     VclPtr<SfxAbstractTabDialog> pDlg( 
pFact->CreateSvxLineTabDialog(mpViewShell->GetFrameWeld(), &aNewAttr, mpDoc, 
pObj, bHasMarked) );
 
diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx
index 83ea1d1c1b03..e62f21e1a7e3 100644
--- a/sd/source/ui/func/fumorph.cxx
+++ b/sd/source/ui/func/fumorph.cxx
@@ -162,7 +162,7 @@ void FuMorph::DoExecute( SfxRequest& )
 
             ImpMorphPolygons(aPolyPoly1, aPolyPoly2, pDlg->GetFadeSteps(), 
aPolyPolyList);
 
-            OUString aString = 
mpView->GetMarkedObjectList().GetMarkDescription() +
+            OUString aString = rMarkList.GetMarkDescription() +
                 " " + SdResId(STR_UNDO_MORPHING);
 
             mpView->BegUndo(aString);
diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx
index dc0a39dff5a2..2a1c9023015b 100644
--- a/sd/source/ui/func/fupoor.cxx
+++ b/sd/source/ui/func/fupoor.cxx
@@ -593,7 +593,8 @@ bool FuPoor::KeyInput(const KeyEvent& rKEvt)
                     nY = 0;
                 }
 
-                if (mpView->GetMarkedObjectList().GetMarkCount() != 0 && 
!rKEvt.GetKeyCode().IsMod1() &&
+                const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+                if (rMarkList.GetMarkCount() != 0 && 
!rKEvt.GetKeyCode().IsMod1() &&
                     !mpDocSh->IsReadOnly())
                 {
                     const SdrHdlList& rHdlList = mpView->GetHdlList();
@@ -1085,10 +1086,10 @@ bool FuPoor::doConstructOrthogonal() const
 {
     // Check whether a media object is selected
     bool bResizeKeepRatio = false;
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
     // tdf#89758 Avoid interactive crop preview from being proportionally 
scaled by default.
-    if (mpView->GetMarkedObjectList().GetMarkCount() != 0 && 
mpView->GetDragMode() != SdrDragMode::Crop)
+    if (rMarkList.GetMarkCount() != 0 && mpView->GetDragMode() != 
SdrDragMode::Crop)
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrObjKind aObjIdentifier = 
rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier();
diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx
index 2803c8f32633..56a0816128ce 100644
--- a/sd/source/ui/func/fusel.cxx
+++ b/sd/source/ui/func/fusel.cxx
@@ -406,7 +406,8 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
                         {
                             bool bToggle = false;
 
-                            if (rMEvt.IsShift() && 
mpView->GetMarkedObjectList().GetMarkCount() > 1)
+                            const SdrMarkList& rMarkList = 
mpView->GetMarkedObjectList();
+                            if (rMEvt.IsShift() && rMarkList.GetMarkCount() > 
1)
                             {
                                 // No Toggle on single selection
                                 bToggle = true;
@@ -561,6 +562,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
                 }
             }
 
+            const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
             if (bMarked &&
                 (!rMEvt.IsShift() || eHit == SdrHitKind::MarkedObject))
             {
@@ -568,7 +570,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
                 if ( ! rMEvt.IsRight())
                     mpView->BegDragObj(aMDPos, nullptr, aVEvt.mpHdl, nDrgLog);
             }
-            else if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+            else if (rMarkList.GetMarkCount() != 0)
             {
                 /**************************************************************
                 * Select gluepoint
@@ -703,9 +705,10 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
                 // check for single object selected
                 SdrObject* pSingleObj = nullptr;
 
-                if (mpView->GetMarkedObjectList().GetMarkCount()==1)
+                const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+                if (rMarkList.GetMarkCount()==1)
                 {
-                    pSingleObj = 
mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                    pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
                 }
 
                 // Check for click on svx::diagram::DiagramFrameHdl
@@ -848,11 +851,12 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
         pHdl = nullptr;
         mpWindow->ReleaseMouse();
         SdrObject* pSingleObj = nullptr;
-        const size_t nMarkCount = mpView->GetMarkedObjectList().GetMarkCount();
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+        const size_t nMarkCount = rMarkList.GetMarkCount();
 
         if (nMarkCount==1)
         {
-            pSingleObj = 
mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+            pSingleObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
         }
 
         if ( (nSlotId != SID_OBJECT_SELECT && nMarkCount==0)                   
 ||
@@ -1034,7 +1038,8 @@ bool FuSelection::KeyInput(const KeyEvent& rKEvt)
     {
         bReturn = FuDraw::KeyInput(rKEvt);
 
-        if(mpView->GetMarkedObjectList().GetMarkCount() == 0)
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+        if(rMarkList.GetMarkCount() == 0)
         {
             mpView->ResetCreationActive();
 
diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx
index 324af035aa27..a96979d4121a 100644
--- a/sd/source/ui/func/futempl.cxx
+++ b/sd/source/ui/func/futempl.cxx
@@ -596,7 +596,8 @@ void FuTemplate::DoExecute( SfxRequest& rReq )
 
         case SID_STYLE_UPDATE_BY_EXAMPLE:
         {
-            if ((mpView->GetMarkedObjectList().GetMarkCount() != 0 && 
mpView->GetMarkedObjectList().GetMarkCount() == 1) ||
+            const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+            if ((rMarkList.GetMarkCount() != 0 && rMarkList.GetMarkCount() == 
1) ||
                  dynamic_cast< const OutlineView *>( mpView ) !=  nullptr)
             {
                 pStyleSheet = mpView->GetStyleSheet();
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index 4383f9394b08..d90aefc7f542 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -186,6 +186,7 @@ void FuText::DoExecute( SfxRequest& )
 
     MouseEvent aMEvt(mpWindow->GetPointerPosPixel());
 
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
     if (nSlotId == SID_TEXTEDIT)
     {
         // Try to select an object
@@ -196,10 +197,8 @@ void FuText::DoExecute( SfxRequest& )
 
         mxTextObj = DynCastSdrTextObj( aVEvt.mpObj );
     }
-    else if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+    else if (rMarkList.GetMarkCount() != 0)
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
-
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
@@ -208,10 +207,8 @@ void FuText::DoExecute( SfxRequest& )
     }
 
     // check for table
-    if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+    if (rMarkList.GetMarkCount() != 0)
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
-
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
@@ -719,7 +716,8 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
     ForcePointer(&rMEvt);
     mpWindow->ReleaseMouse();
 
-    if ( mpView && mpView->GetMarkedObjectList().GetMarkCount() == 0 )
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if ( mpView && rMarkList.GetMarkCount() == 0 )
     {
         sal_uInt16 nDrgLog1 = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(mpView->GetDragThresholdPixels(),0)).Width() );
         if ( std::abs(aMDPos.X() - aPnt.X()) < nDrgLog1 &&
@@ -1214,6 +1212,7 @@ void FuText::ReceiveRequest(SfxRequest& rReq)
     MouseEvent aMEvt(mpWindow->GetPointerPosPixel());
 
     mxTextObj = nullptr;
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
 
     if (nSlotId == SID_TEXTEDIT)
     {
@@ -1234,9 +1233,8 @@ void FuText::ReceiveRequest(SfxRequest& rReq)
             }
         }
     }
-    else if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+    else if (rMarkList.GetMarkCount() != 0)
     {
-        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
 
         if (rMarkList.GetMarkCount() == 1)
         {
diff --git a/sd/source/ui/func/futhes.cxx b/sd/source/ui/func/futhes.cxx
index 74521700218a..4c5cfedca69c 100644
--- a/sd/source/ui/func/futhes.cxx
+++ b/sd/source/ui/func/futhes.cxx
@@ -68,11 +68,10 @@ void FuThesaurus::DoExecute(SfxRequest& rReq)
     if (dynamic_cast< DrawViewShell *>( mpViewShell ))
     {
         SdrTextObj* pTextObj = nullptr;
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
 
-        if ( mpView->GetMarkedObjectList().GetMarkCount() != 0 )
+        if ( rMarkList.GetMarkCount() != 0 )
         {
-            const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
-
             if ( rMarkList.GetMarkCount() == 1 )
             {
                 SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sd/source/ui/func/futransf.cxx b/sd/source/ui/func/futransf.cxx
index 3b1790028102..d9e92c000413 100644
--- a/sd/source/ui/func/futransf.cxx
+++ b/sd/source/ui/func/futransf.cxx
@@ -52,7 +52,8 @@ namespace {
 void setUndo(::sd::View* pView, const SfxItemSet* pArgs, bool addPageMargin)
 {
     // Undo
-    OUString aString = pView->GetMarkedObjectList().GetMarkDescription() +
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    OUString aString = rMarkList.GetMarkDescription() +
         " " + SdResId(STR_TRANSFORM);
     pView->BegUndo(aString);
     pView->SetGeoAttrToMarked(*pArgs, addPageMargin);
@@ -64,7 +65,8 @@ void setUndo(::sd::View* pView, const SfxItemSet* pArgs, bool 
addPageMargin)
 
 void FuTransform::DoExecute( SfxRequest& rReq )
 {
-    if (mpView->GetMarkedObjectList().GetMarkCount() == 0)
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() == 0)
         return;
 
     const SfxItemSet* pArgs = rReq.GetArgs();
@@ -82,7 +84,6 @@ void FuTransform::DoExecute( SfxRequest& rReq )
     VclPtr<SfxAbstractTabDialog> pDlg;
 
     bool bWelded = false;
-    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
     SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
     if( rMarkList.GetMarkCount() == 1 &&
         pObj->GetObjInventor() == SdrInventor::Default &&
diff --git a/sd/source/ui/func/fuvect.cxx b/sd/source/ui/func/fuvect.cxx
index 63d0408979a3..def172d573bf 100644
--- a/sd/source/ui/func/fuvect.cxx
+++ b/sd/source/ui/func/fuvect.cxx
@@ -73,7 +73,7 @@ void FuVectorize::DoExecute( SfxRequest& )
     if( pPageView && rMtf.GetActionSize() )
     {
         rtl::Reference<SdrGrafObj> pVectObj = 
SdrObject::Clone(static_cast<SdrGrafObj&>(*pObj), 
pObj->getSdrModelFromSdrObject());
-        OUString aStr = mpView->GetMarkedObjectList().GetMarkDescription() +
+        OUString aStr = rMarkList.GetMarkDescription() +
             " " + SdResId( STR_UNDO_VECTORIZE );
         mpView->BegUndo( aStr );
         pVectObj->SetGraphic( rMtf );
diff --git a/sd/source/ui/func/smarttag.cxx b/sd/source/ui/func/smarttag.cxx
index 99d0e14d9248..f9aeec99eb1b 100644
--- a/sd/source/ui/func/smarttag.cxx
+++ b/sd/source/ui/func/smarttag.cxx
@@ -163,7 +163,8 @@ void SmartTagSet::select( const SmartTagReference& xTag )
     mxSelectedTag = xTag;
     mxSelectedTag->select();
     mrView.SetPossibilitiesDirty();
-    if( mrView.GetMarkedObjectList().GetMarkCount() > 0 )
+    const SdrMarkList& rMarkList = mrView.GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() > 0 )
         mrView.UnmarkAllObj();
     else
         mrView.updateHandles();
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 1ea3eba17955..4d00939fc53e 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -1412,7 +1412,8 @@ void SdOutliner::ShowEndOfSearchDialog()
     }
 
     OUString aString;
-    if (mpView->GetMarkedObjectList().GetMarkCount() != 0)
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() != 0)
         aString = SdResId(STR_END_SPELLING_OBJ);
     else
         aString = SdResId(STR_END_SPELLING);
@@ -1770,12 +1771,12 @@ void SdOutliner::SetViewShell (const 
std::shared_ptr<sd::ViewShell>& rpViewShell
 void SdOutliner::HandleChangedSelection()
 {
     maMarkListCopy.clear();
-    mbRestrictSearchToSelection = mpView->GetMarkedObjectList().GetMarkCount() 
!= 0;
+    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+    mbRestrictSearchToSelection = rMarkList.GetMarkCount() != 0;
     if (!mbRestrictSearchToSelection)
         return;
 
     // Make a copy of the current mark list.
-    const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
     const size_t nCount = rMarkList.GetMarkCount();
     if (nCount > 0)
     {
diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx
index 6880f83e2cd0..cfdadfae3ce7 100644
--- a/sd/source/ui/view/drawview.cxx
+++ b/sd/source/ui/view/drawview.cxx
@@ -541,10 +541,11 @@ void DrawView::DeleteMarked()
     sd::UndoManager* pUndoManager = mrDoc.GetUndoManager();
     DBG_ASSERT( pUndoManager, "sd::DrawView::DeleteMarked(), ui action without 
undo manager!?" );
 
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     if( pUndoManager )
     {
         OUString aUndo(SvxResId(STR_EditDelete));
-        aUndo = aUndo.replaceFirst("%1", 
GetMarkedObjectList().GetMarkDescription());
+        aUndo = aUndo.replaceFirst("%1", rMarkList.GetMarkDescription());
         ViewShellId nViewShellId = mpDrawViewShell ? 
mpDrawViewShell->GetViewShellBase().GetViewShellId() : ViewShellId(-1);
         pUndoManager->EnterListAction(aUndo, aUndo, 0, nViewShellId);
     }
@@ -552,7 +553,7 @@ void DrawView::DeleteMarked()
     SdPage* pPage = nullptr;
     bool bResetLayout = false;
 
-    const size_t nMarkCount = GetMarkedObjectList().GetMarkCount();
+    const size_t nMarkCount = rMarkList.GetMarkCount();
     if( nMarkCount )
     {
         SdrMarkList aList( GetMarkedObjectList() );
diff --git a/sd/source/ui/view/drbezob.cxx b/sd/source/ui/view/drbezob.cxx
index 863045043614..5ffa21e149fe 100644
--- a/sd/source/ui/view/drbezob.cxx
+++ b/sd/source/ui/view/drbezob.cxx
@@ -121,7 +121,8 @@ void BezierObjectBar::GetAttrState(SfxItemSet& rSet)
     else
     {
         IPolyPolygonEditorController* pIPPEC = nullptr;
-        if( mpView->GetMarkedObjectList().GetMarkCount() )
+        const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
+        if( rMarkList.GetMarkCount() )
             pIPPEC = mpView;
         else
             pIPPEC = dynamic_cast< IPolyPolygonEditorController* >( 
mpView->getSmartTags().getSelected().get() );
@@ -273,7 +274,7 @@ void BezierObjectBar::Execute(SfxRequest& rReq)
                 }
             }
 
-            if( (pIPPEC == mpView) && 
mpView->GetMarkedObjectList().GetMarkCount() == 0 )
+            if( (pIPPEC == mpView) && rMarkList.GetMarkCount() == 0 )
                 
mpViewSh->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, 
SfxCallMode::ASYNCHRON);
 
             rReq.Ignore();
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index 6bc11bef160b..df004aa0610e 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -167,10 +167,9 @@ void DrawViewShell::SelectionHasChanged()
 
     SdrOle2Obj* pOleObj = nullptr;
 
-    if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList());
+    if ( rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
-
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrMark* pMark = rMarkList.GetMark(0);
@@ -753,10 +752,9 @@ void DrawViewShell::ResetActualPage()
  */
 ErrCode DrawViewShell::DoVerb(sal_Int32 nVerb)
 {
-    if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList());
+    if ( rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
-
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index b8a8df1af3cc..12f5490c7b99 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -600,13 +600,13 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
     DeactivateCurrentFunction();
 
     sal_uInt16 nSId = rReq.GetSlot();
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
 
     switch ( nSId )
     {
         case SID_OUTLINE_TEXT_AUTOFIT:
         {
             SfxUndoManager* pUndoManager = GetDocSh()->GetUndoManager();
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
             if( rMarkList.GetMarkCount() == 1 )
             {
                 pUndoManager->EnterListAction(u""_ustr, u""_ustr, 0, 
GetViewShellBase().GetViewShellId());
@@ -1137,9 +1137,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
                         // exception to get good results for Svgs. This is how 
the code gets more
                         // and more crowded, at last I made a remark for 
myself to change this
                         // as one of the next tasks.
-                        if(1 == 
mpDrawView->GetMarkedObjectList().GetMarkCount())
+                        if(1 == rMarkList.GetMarkCount())
                         {
-                            const SdrGrafObj* pSdrGrafObj = dynamic_cast< 
const SdrGrafObj* 
>(mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj());
+                            const SdrGrafObj* pSdrGrafObj = dynamic_cast< 
const SdrGrafObj* >(rMarkList.GetMark(0)->GetMarkedSdrObj());
 
                             if(pSdrGrafObj && 
pSdrGrafObj->isEmbeddedVectorGraphicData())
                             {
@@ -1164,7 +1164,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
                     aGraphic);
 
                 // get some necessary info and ensure it
-                const SdrMarkList& 
rMarkList(mpDrawView->GetMarkedObjectList());
                 const size_t nMarkCount(rMarkList.GetMarkCount());
                 SdrPageView* pPageView = mpDrawView->GetSdrPageView();
                 OSL_ENSURE(nMarkCount, "DrawViewShell::FuTemporary: 
SID_CONVERT_TO_BITMAP with empty selection (!)");
@@ -1230,7 +1229,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
             }
             else
             {
-                const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
                 const size_t nCount = rMarkList.GetMarkCount();
 
                 // For every presentation object a SfxItemSet of hard 
attributes
@@ -1360,7 +1358,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
 
         case SID_SAVE_GRAPHIC:
         {
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
             if( rMarkList.GetMarkCount() == 1 )
             {
                 const SdrGrafObj* pObj = dynamic_cast<const 
SdrGrafObj*>(rMarkList.GetMark(0)->GetMarkedSdrObj());
@@ -1399,7 +1396,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
 
         case SID_EXTERNAL_EDIT:
         {
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
             if( rMarkList.GetMarkCount() == 1 )
             {
                 SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
@@ -1420,7 +1416,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
 
         case SID_COMPRESS_GRAPHIC:
         {
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
             if( rMarkList.GetMarkCount() == 1 )
             {
                 SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
@@ -1433,7 +1428,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
                         {
                             rtl::Reference<SdrGrafObj> pNewObject = 
dialog.GetCompressedSdrGrafObj();
                             SdrPageView* pPageView = 
mpDrawView->GetSdrPageView();
-                            OUString aUndoString = 
mpDrawView->GetMarkedObjectList().GetMarkDescription() + " Compress";
+                            OUString aUndoString = 
rMarkList.GetMarkDescription() + " Compress";
                             mpDrawView->BegUndo( aUndoString );
                             mpDrawView->ReplaceObjectAtView( pObj, *pPageView, 
pNewObject.get() );
                             mpDrawView->EndUndo();
@@ -1477,7 +1472,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
             SetCurrentFunction( FuTransform::Create( this, GetActiveWindow(), 
mpDrawView.get(), GetDoc(), rReq ) );
             // tdf#138963 conditions tested for here must be the same as those
             // of the early returns from FuTransform::DoExecute
-            if (rReq.GetArgs() || 
mpDrawView->GetMarkedObjectList().GetMarkCount() == 0)
+            if (rReq.GetArgs() || rMarkList.GetMarkCount() == 0)
             {
                 Invalidate(SID_RULER_OBJECT);
                 Cancel();
@@ -2662,10 +2657,10 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         {
             // only allow for single object selection since the name of an 
object needs
             // to be unique
-            if(1 == mpDrawView->GetMarkedObjectList().GetMarkCount())
+            if(1 == rMarkList.GetMarkCount())
             {
                 // #i68101#
-                rtl::Reference<SdrObject> pSelected = 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                rtl::Reference<SdrObject> pSelected = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
                 OSL_ENSURE(pSelected, "DrawViewShell::FuTemp03: nMarkCount, 
but no object (!)");
                 OUString aName(pSelected->GetName());
 
@@ -2701,9 +2696,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         // #i68101#
         case SID_OBJECT_TITLE_DESCRIPTION:
         {
-            if(1 == mpDrawView->GetMarkedObjectList().GetMarkCount())
+            if(1 == rMarkList.GetMarkCount())
             {
-                rtl::Reference<SdrObject> pSelected = 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                rtl::Reference<SdrObject> pSelected = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
                 OSL_ENSURE(pSelected, "DrawViewShell::FuTemp03: nMarkCount, 
but no object (!)");
                 OUString aTitle(pSelected->GetTitle());
                 OUString aDescription(pSelected->GetDescription());
@@ -2737,7 +2732,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
 
         case SID_SETLAYER:
         {
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
             const size_t nMarkCount = rMarkList.GetMarkCount();
             if (nMarkCount >= 1 && mpLayerTabBar)
             {
@@ -2994,7 +2988,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
             else if ( mpDrawView->IsImportMtfPossible() )
             {
                 weld::WaitObject aWait(GetFrameWeld());
-                const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
                 const size_t nCnt=rMarkList.GetMarkCount();
 
                 // determine the sum of meta objects of all selected meta files
@@ -3274,8 +3267,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
             if ( GetViewFrame()->HasChildWindow( nId )
                 && ( ( ViewShell::Implementation::GetImageMapDialog() ) != 
nullptr ) )
             {
-                const SdrMarkList&  rMarkList = 
mpDrawView->GetMarkedObjectList();
-
                 if ( rMarkList.GetMarkCount() == 1 )
                     UpdateIMapDlg( rMarkList.GetMark( 0 )->GetMarkedSdrObj() );
             }
diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx
index ce7bf798083e..8a4d33fee0ec 100644
--- a/sd/source/ui/view/drviews3.cxx
+++ b/sd/source/ui/view/drviews3.cxx
@@ -132,6 +132,7 @@ void  DrawViewShell::ExecCtrl(SfxRequest& rReq)
             }
     }
 
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     //  sal_uInt16 nSlot = rReq.GetSlot();
     switch (nSlot)
     {
@@ -348,10 +349,8 @@ void  DrawViewShell::ExecCtrl(SfxRequest& rReq)
                     rReq.GetArgs()->Get(SID_OBJECTRESIZE);
                 ::tools::Rectangle aRect( GetActiveWindow()->PixelToLogic( 
rRect.GetValue() ) );
 
-                if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+                if ( rMarkList.GetMarkCount() != 0 )
                 {
-                    const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
-
                     if (rMarkList.GetMarkCount() == 1)
                     {
                         SdrMark* pMark = rMarkList.GetMark(0);
@@ -487,8 +486,6 @@ void  DrawViewShell::ExecCtrl(SfxRequest& rReq)
         case SID_REGENERATE_DIAGRAM:
         case SID_EDIT_DIAGRAM:
         {
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
-
             if (1 == rMarkList.GetMarkCount())
             {
                 SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
@@ -928,12 +925,13 @@ void  DrawViewShell::GetRulerState(SfxItemSet& rSet)
 
     const bool bRTL = GetDoc() && GetDoc()->GetDefaultWritingMode() == 
css::text::WritingMode_RL_TB;
     rSet.Put(SfxBoolItem(SID_RULER_TEXT_RIGHT_TO_LEFT, bRTL));
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
 
-    if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+    if( rMarkList.GetMarkCount() != 0 )
     {
         if( mpDrawView->IsTextEdit() )
         {
-            SdrObject* pObj = mpDrawView->GetMarkedObjectList().GetMark( 0 
)->GetMarkedSdrObj();
+            SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
             if( pObj->GetObjInventor() == SdrInventor::Default)
             {
                 SfxItemSet aEditAttr( GetDoc()->GetPool() );
diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx
index 4297fc521b38..83ffcc9be39b 100644
--- a/sd/source/ui/view/drviews4.cxx
+++ b/sd/source/ui/view/drviews4.cxx
@@ -642,10 +642,11 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, 
::sd::Window* pWin)
         else
         {
             // is something selected?
-            if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 &&
-                mpDrawView->GetMarkedObjectList().GetMarkCount() == 1 )
+            const SdrMarkList& rMarkList(mpDrawView->GetMarkedObjectList());
+            if (rMarkList.GetMarkCount() != 0 &&
+                rMarkList.GetMarkCount() == 1 )
             {
-                pObj = 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
                 if( HasCurrentFunction(SID_BEZIER_EDIT) && (dynamic_cast< 
SdrPathObj * >( pObj ) != nullptr ) )
                 {
                     aPopupId = "bezier";
@@ -781,8 +782,8 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, 
::sd::Window* pWin)
             }
 
             // multiple selection
-            else if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 &&
-                mpDrawView->GetMarkedObjectList().GetMarkCount() > 1 )
+            else if (rMarkList.GetMarkCount() != 0 &&
+                rMarkList.GetMarkCount() > 1 )
             {
                 aPopupId = "multiselect";
             }
@@ -808,11 +809,12 @@ void DrawViewShell::Command(const CommandEvent& rCEvt, 
::sd::Window* pWin)
                 Point aMenuPos(GetActiveWindow()->GetSizePixel().Width()/2
                         ,GetActiveWindow()->GetSizePixel().Height()/2);
 
+                const SdrMarkList& 
rMarkList(mpDrawView->GetMarkedObjectList());
                 //middle of the bounding rect if something is marked
-                if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 && 
mpDrawView->GetMarkedObjectList().GetMarkCount() >= 1 )
+                if( rMarkList.GetMarkCount() != 0 && rMarkList.GetMarkCount() 
>= 1 )
                 {
                     ::tools::Rectangle aMarkRect;
-                    
mpDrawView->GetMarkedObjectList().TakeBoundRect(nullptr,aMarkRect);
+                    rMarkList.TakeBoundRect(nullptr,aMarkRect);
                     aMenuPos = GetActiveWindow()->LogicToPixel( 
aMarkRect.Center() );
 
                     //move the point into the visible window area
diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx
index cc27855f469d..5b208c12d9df 100644
--- a/sd/source/ui/view/drviews6.cxx
+++ b/sd/source/ui/view/drviews6.cxx
@@ -262,8 +262,9 @@ void DrawViewShell::ExecBmpMask( SfxRequest const & rReq )
         case SID_BMPMASK_EXEC :
         {
             SdrGrafObj* pObj = nullptr;
-            if( mpDrawView && mpDrawView->GetMarkedObjectList().GetMarkCount() 
)
-                pObj = dynamic_cast< SdrGrafObj* >( 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
+            const SdrMarkList&  rMarkList = mpDrawView->GetMarkedObjectList();
+            if( mpDrawView && rMarkList.GetMarkCount() )
+                pObj = dynamic_cast< SdrGrafObj* >( 
rMarkList.GetMark(0)->GetMarkedSdrObj() );
 
             if ( pObj && !mpDrawView->IsTextEdit() )
             {
@@ -297,7 +298,7 @@ void DrawViewShell::ExecBmpMask( SfxRequest const & rReq )
                         xNewObj->SetEmptyPresObj(false);
                         
xNewObj->SetGraphic(pBmpMask->Mask(xNewObj->GetGraphic()));
 
-                        OUString aStr = 
mpDrawView->GetMarkedObjectList().GetMarkDescription() +
+                        OUString aStr = rMarkList.GetMarkDescription() +
                             " " + SdResId(STR_EYEDROPPER);
 
                         mpDrawView->BegUndo( aStr );
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index 8afeb9810513..2abe7214a794 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -218,8 +218,10 @@ void DrawViewShell::GetDrawAttrState(SfxItemSet& rSet)
     if( !mpDrawView )
         return nullptr;
 
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+
     //when there is one object selected
-    if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0 || 
(mpDrawView->GetMarkedObjectList().GetMarkCount() != 1))
+    if (rMarkList.GetMarkCount() == 0 || (rMarkList.GetMarkCount() != 1))
         return nullptr;
 
     //and we are editing the outline object
@@ -286,9 +288,10 @@ bool DrawViewShell::ShouldDisableEditHyperlink() const
 {
     if (!mpDrawView)
         return true;
-    if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0)
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() == 0)
        return true;
-    if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 1)
+    if (rMarkList.GetMarkCount() != 1)
         return true;
 
     bool bDisableEditHyperlink = true;
@@ -300,7 +303,7 @@ bool DrawViewShell::ShouldDisableEditHyperlink() const
     }
     else
     {
-        SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
+        SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( 
rMarkList.GetMark(0)->GetMarkedSdrObj() );
 
         if ( pUnoCtrl && SdrInventor::FmForm == pUnoCtrl->GetObjInventor() )
         {
@@ -1364,7 +1367,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
 
     bool bSingleGraphicSelected = false;
 
-    if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0)
+    if (rMarkList.GetMarkCount() == 0)
     {
         rSet.DisableItem (SID_CONVERT_TO_METAFILE);
         rSet.DisableItem (SID_CONVERT_TO_BITMAP);
diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx
index 31c16efb0378..0ca9af3e536a 100644
--- a/sd/source/ui/view/drviews8.cxx
+++ b/sd/source/ui/view/drviews8.cxx
@@ -89,9 +89,9 @@ void DrawViewShell::ScannerEvent()
                     ::tools::Rectangle   aRect( aPnt, aBmpSize );
                     bool        bInsertNewObject = true;
 
-                    if( GetView()->GetMarkedObjectList().GetMarkCount() != 0 )
+                    const SdrMarkList& rMarkList = 
GetView()->GetMarkedObjectList();
+                    if( rMarkList.GetMarkCount() != 0 )
                     {
-                        const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
 
                         if( rMarkList.GetMarkCount() == 1 )
                         {
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
index 2d5df30be799..9422ac4ca5cb 100644
--- a/sd/source/ui/view/drviews9.cxx
+++ b/sd/source/ui/view/drviews9.cxx
@@ -127,11 +127,10 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq)
 
         bool bInsertNewObject = true;
 
-        if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+        const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() != 0 )
         {
             // is there an empty graphic object?
-            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
-
             if (rMarkList.GetMarkCount() == 1)
             {
                 SdrMark* pMark = rMarkList.GetMark(0);
@@ -151,7 +150,7 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq)
                         pNewGrafObj->SetOutlinerParaObject(std::nullopt);
                         pNewGrafObj->SetGraphic(aGraphic);
 
-                        OUString aStr = 
mpDrawView->GetMarkedObjectList().GetMarkDescription() +
+                        OUString aStr = rMarkList.GetMarkDescription() +
                             " " + SdResId(STR_UNDO_REPLACE);
                         mpDrawView->BegUndo(aStr);
                         SdrPageView* pPV = mpDrawView->GetSdrPageView();
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index bf0b4023014a..2ed2e8745a6c 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -650,7 +650,8 @@ void DrawViewShell::GetStatusBarState(SfxItemSet& rSet)
         }
         else
         {
-            if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+            if ( rMarkList.GetMarkCount() != 0 )
             {
                 ::tools::Rectangle aRect = mpDrawView->GetAllMarkedRect();
                 pPageView->LogicToPagePos(aRect);
@@ -806,9 +807,10 @@ OUString const & DrawViewShell::GetSidebarContextName() 
const
                 eViewType = 
svx::sidebar::SelectionAnalyzer::ViewType::Standard;
             break;
     }
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     return EnumContext::GetContextName(
         svx::sidebar::SelectionAnalyzer::GetContextForSelection_SD(
-            mpDrawView->GetMarkedObjectList(),
+            rMarkList,
             eViewType));
 }
 
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 965b9bec40df..f594fb1f7fcf 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -321,11 +321,12 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
                 rReq.SetSlot( nSlotId );
             }
 
+            const SdrMarkList&  rMarkList = mpDrawView->GetMarkedObjectList();
             if (nSlotId == SID_OBJECT_CROOK_ROTATE ||
                 nSlotId == SID_OBJECT_CROOK_SLANT ||
                 nSlotId == SID_OBJECT_CROOK_STRETCH)
             {
-                if ( mpDrawView->GetMarkedObjectList().GetMarkCount() > 0 &&
+                if ( rMarkList.GetMarkCount() > 0 &&
                     !mpDrawView->IsCrookAllowed( 
mpDrawView->IsCrookNoContortion() ) )
                 {
                     if ( mpDrawView->IsPresObjSelected() )
@@ -352,7 +353,6 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
             else if (nSlotId == SID_OBJECT_SHEAR)
             {
                 size_t i = 0;
-                const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
                 const size_t nMarkCnt = rMarkList.GetMarkCount();
                 bool b3DObjMarked = false;
 
@@ -600,14 +600,15 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
     // CTRL-SID_OBJECT_SELECT -> select first draw object if none is selected 
yet
     if(SID_OBJECT_SELECT == nSId && HasCurrentFunction() && 
(rReq.GetModifier() & KEY_MOD1))
     {
-        if(GetView()->GetMarkedObjectList().GetMarkCount() == 0)
+        const SdrMarkList&  rMarkList = GetView()->GetMarkedObjectList();
+        if(rMarkList.GetMarkCount() == 0)
         {
             // select first object
             GetView()->UnmarkAllObj();
             GetView()->MarkNextObj(true);
 
             // ...and make it visible
-            if(GetView()->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
                 GetView()->MakeVisible(GetView()->GetAllMarkedRect(), 
*GetActiveWindow());
         }
     }
@@ -1253,7 +1254,8 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
         case SID_SIZE_OPTIMAL:  // BASIC
         {
             mbZoomOnPage = false;
-            if ( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+            if ( rMarkList.GetMarkCount() != 0 )
             {
                 maMarkRect = mpDrawView->GetAllMarkedRect();
                 ::tools::Long nW = 
static_cast<::tools::Long>(maMarkRect.GetWidth()  * 1.03);
@@ -1556,9 +1558,10 @@ void DrawViewShell::InsertURLButton(const OUString& 
rURL, const OUString& rText,
     const OUString sTargetURL( ::URIHelper::SmartRel2Abs( INetURLObject( 
GetDocSh()->GetMedium()->GetBaseURL() ), rURL, URIHelper::GetMaybeFileHdl(), 
true, false,
                                                                 
INetURLObject::EncodeMechanism::WasEncoded,
                                                                 
INetURLObject::DecodeMechanism::Unambiguous ) );
-    if (mpDrawView->GetMarkedObjectList().GetMarkCount() > 0)
+    const SdrMarkList&  rMarkList = mpDrawView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() > 0)
     {
-        SdrObject* pMarkedObj = 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pMarkedObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
         if( pMarkedObj ) try
         {
             // change first marked object
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index e14995642f69..1c1577b7ab91 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -107,11 +107,12 @@ void DrawViewShell::GetCtrlState(SfxItemSet &rSet)
         }
         else
         {
-            if (mpDrawView->GetMarkedObjectList().GetMarkCount() > 0)
+            const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+            if (rMarkList.GetMarkCount() > 0)
             {
                 bool bFound = false;
 
-                SdrObject* pMarkedObj = 
mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                SdrObject* pMarkedObj = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
                 if( pMarkedObj && (SdrInventor::FmForm == 
pMarkedObj->GetObjInventor()) )
                 {
                     SdrUnoObj* pUnoCtrl = dynamic_cast< SdrUnoObj* >( 
pMarkedObj );
@@ -265,6 +266,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
     bool    bAttr = false;
     SfxAllItemSet aAllSet( *rSet.GetPool() );
 
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     while ( nWhich )
     {
         sal_uInt16 nSlotId = SfxItemPool::IsWhich(nWhich)
@@ -479,7 +481,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
                 SfxStyleSheet* pStyleSheet = mpDrawView->GetStyleSheet();
                 if( pStyleSheet )
                 {
-                    if( nSlotId != SID_STYLE_APPLY && 
mpDrawView->GetMarkedObjectList().GetMarkCount() == 0 )
+                    if( nSlotId != SID_STYLE_APPLY && rMarkList.GetMarkCount() 
== 0 )
                     {
                         SfxTemplateItem aTmpItem( nWhich, OUString() );
                         aAllSet.Put( aTmpItem );
@@ -517,7 +519,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
 
             case SID_SET_DEFAULT:
             {
-                if( !mpDrawView->GetMarkedObjectList().GetMarkCount() ||
+                if( !rMarkList.GetMarkCount() ||
                     ( !mpDrawView->IsTextEdit() && 
!mpDrawView->GetStyleSheet() )
                   )
                     rSet.DisableItem( nWhich );
@@ -581,7 +583,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
                     }
                     else if 
(static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Para)
                     {
-                        if (mpDrawView->GetMarkedObjectList().GetMarkCount() 
== 0)
+                        if (rMarkList.GetMarkCount() == 0)
                         {
                             rSet.DisableItem(nWhich);
                         }
@@ -591,7 +593,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
                 // view state; an actual set family can not be considered
                 else
                 {
-                    if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0)
+                    if (rMarkList.GetMarkCount() == 0)
                     {
                         rSet.DisableItem(nWhich);
                     }
@@ -601,7 +603,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
 
             case SID_STYLE_UPDATE_BY_EXAMPLE:
             {
-                if (mpDrawView->GetMarkedObjectList().GetMarkCount() == 0)
+                if (rMarkList.GetMarkCount() == 0)
                 {
                     rSet.DisableItem(nWhich);
                 }
@@ -684,7 +686,6 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
             case FN_NUM_NUMBERING_ON:
             {
                 bool bEnable = false;
-                const SdrMarkList& rMarkList = 
mpDrawView->GetMarkedObjectList();
                 const size_t nMarkCount = rMarkList.GetMarkCount();
                 for (size_t nIndex = 0; nIndex < nMarkCount; ++nIndex)
                 {
@@ -731,7 +732,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
 
     // if the view owns selected objects, corresponding items have to be
     // changed from SfxItemState::DEFAULT (_ON) to SfxItemState::DISABLED
-    if( mpDrawView->GetMarkedObjectList().GetMarkCount() != 0 )
+    if( rMarkList.GetMarkCount() != 0 )
     {
         SfxWhichIter aNewIter( *pSet );
         nWhich = aNewIter.FirstWhich();
@@ -811,6 +812,7 @@ bool DrawViewShell::HasSelection(bool bText) const
 {
     bool bReturn = false;
 
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
     if (bText)
     {
         OutlinerView* pOlView = mpDrawView->GetTextEditOutlinerView();
@@ -820,7 +822,7 @@ bool DrawViewShell::HasSelection(bool bText) const
             bReturn = true;
         }
     }
-    else if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 0)
+    else if (rMarkList.GetMarkCount() != 0)
     {
         bReturn = true;
     }
diff --git a/sd/source/ui/view/drviewsg.cxx b/sd/source/ui/view/drviewsg.cxx
index 94fc13e6c606..aa62d437db82 100644
--- a/sd/source/ui/view/drviewsg.cxx
+++ b/sd/source/ui/view/drviewsg.cxx
@@ -48,7 +48,8 @@ void DrawViewShell::ExecIMap( SfxRequest const & rReq )
     if ( rReq.GetSlot() != SID_IMAP_EXEC )
         return;
 
-    SdrMark* pMark = mpDrawView->GetMarkedObjectList().GetMark(0);
+    const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
+    SdrMark* pMark = rMarkList.GetMark(0);
 
     if ( !pMark )
         return;
diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx
index f5b45b6fe9ac..cfa0fa909f5a 100644
--- a/sd/source/ui/view/sdview.cxx
+++ b/sd/source/ui/view/sdview.cxx
@@ -503,7 +503,8 @@ void View::MarkListHasChanged()
 {
     FmFormView::MarkListHasChanged();
 
-    if( GetMarkedObjectList().GetMarkCount() > 0 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() > 0 )
         maSmartTags.deselect();
 }
 
@@ -865,12 +866,13 @@ bool View::RestoreDefaultText( SdrTextObj* pTextObj )
 void View::SetMarkedOriginalSize()
 {
     std::unique_ptr<SdrUndoGroup> pUndoGroup(new SdrUndoGroup(mrDoc));
-    const size_t nCount = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nCount = rMarkList.GetMarkCount();
     bool            bOK = false;
 
     for( size_t i = 0; i < nCount; ++i )
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
 
         if( pObj->GetObjInventor() == SdrInventor::Default )
         {
@@ -1196,10 +1198,11 @@ bool View::ShouldToggleOn(
 
     bool bToggleOn = false;
     std::unique_ptr<SdrOutliner> 
pOutliner(SdrMakeOutliner(OutlinerMode::TextObject, rSdrModel));
-    const size_t nMarkCount = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nMarkCount = rMarkList.GetMarkCount();
     for (size_t nIndex = 0; nIndex < nMarkCount && !bToggleOn; ++nIndex)
     {
-        SdrTextObj* pTextObj = 
DynCastSdrTextObj(GetMarkedObjectList().GetMark(nIndex)->GetMarkedSdrObj());
+        SdrTextObj* pTextObj = 
DynCastSdrTextObj(rMarkList.GetMark(nIndex)->GetMarkedSdrObj());
         if (!pTextObj || pTextObj->IsTextEditActive())
             continue;
         if( dynamic_cast< const SdrTableObj *>( pTextObj ) !=  nullptr)
@@ -1267,10 +1270,11 @@ void View::ChangeMarkedObjectsBulletsNumbering(
     std::unique_ptr<SdrOutliner> 
pOutliner(SdrMakeOutliner(OutlinerMode::TextObject, rSdrModel));
     OutlinerView aOutlinerView(pOutliner.get(), pWindow);
 
-    const size_t nMarkCount = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nMarkCount = rMarkList.GetMarkCount();
     for (size_t nIndex = 0; nIndex < nMarkCount; ++nIndex)
     {
-        SdrTextObj* pTextObj = 
DynCastSdrTextObj(GetMarkedObjectList().GetMark(nIndex)->GetMarkedSdrObj());
+        SdrTextObj* pTextObj = 
DynCastSdrTextObj(rMarkList.GetMark(nIndex)->GetMarkedSdrObj());
         if (!pTextObj || pTextObj->IsTextEditActive())
             continue;
         if( dynamic_cast< SdrTableObj *>( pTextObj ) !=  nullptr)
diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx
index 2112cd62b744..b2f58cfcfffd 100644
--- a/sd/source/ui/view/sdview2.cxx
+++ b/sd/source/ui/view/sdview2.cxx
@@ -104,9 +104,10 @@ css::uno::Reference< css::datatransfer::XTransferable > 
View::CreateClipboardDat
         pNewPage->SetLayoutName( pOldPage->GetLayoutName() );
     }
 
-    if( GetMarkedObjectList().GetMarkCount() == 1 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() == 1 )
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
 
         if( auto pOle2Obj = dynamic_cast<SdrOle2Obj *>( pObj ) )
             if( pOle2Obj->GetObjRef() )
@@ -150,9 +151,10 @@ css::uno::Reference< css::datatransfer::XTransferable > 
View::CreateDragDataObje
     OUString                        aDisplayName;
     SdrOle2Obj*                     pSdrOleObj = nullptr;
 
-    if( GetMarkedObjectList().GetMarkCount() == 1 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() == 1 )
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
 
         if( auto pOle2Obj = dynamic_cast<SdrOle2Obj *>( pObj ) )
             if( pOle2Obj->GetObjRef() )
@@ -217,7 +219,8 @@ void View::UpdateSelectionClipboard() // false case
         return;
     if (!mpViewSh->GetActiveWindow())
         return;
-    if (GetMarkedObjectList().GetMarkCount())
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (rMarkList.GetMarkCount())
         CreateSelectionDataObject( this );
     else
         ClearSelectionClipboard();
@@ -240,14 +243,15 @@ void View::DoCut()
 {
     const OutlinerView* pOLV = GetTextEditOutlinerView();
 
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     if( pOLV )
         const_cast<OutlinerView*>(pOLV)->Cut();
-    else if( GetMarkedObjectList().GetMarkCount() != 0 )
+    else if( rMarkList.GetMarkCount() != 0 )
     {
         OUString aStr(SdResId(STR_UNDO_CUT));
 
         DoCopy();
-        BegUndo(aStr + " " + GetMarkedObjectList().GetMarkDescription());
+        BegUndo(aStr + " " + rMarkList.GetMarkDescription());
         DeleteMarked();
         EndUndo();
     }
@@ -257,9 +261,10 @@ void View::DoCopy()
 {
     const OutlinerView* pOLV = GetTextEditOutlinerView();
 
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     if( pOLV )
         const_cast<OutlinerView*>(pOLV)->Copy();
-    else if( GetMarkedObjectList().GetMarkCount() != 0 )
+    else if( rMarkList.GetMarkCount() != 0 )
     {
         BrkAction();
         CreateClipboardDataObject();
@@ -341,7 +346,8 @@ void View::DoPaste (::sd::Window* pWindow)
 
 void View::StartDrag( const Point& rStartPos, vcl::Window* pWindow )
 {
-    if (GetMarkedObjectList().GetMarkCount() == 0 || !IsAction() || !mpViewSh 
|| !pWindow)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() == 0 || !IsAction() || !mpViewSh || !pWindow)
         return;
 
     BrkAction();
@@ -451,9 +457,10 @@ sal_Int8 View::AcceptDrop( const AcceptDropEvent& rEvt, 
DropTargetHelper& rTarge
         {
             ::tools::Rectangle aRect( pOLV->GetOutputArea() );
 
-            if (GetMarkedObjectList().GetMarkCount() == 1)
+            const SdrMarkList& rMarkList = GetMarkedObjectList();
+            if (rMarkList.GetMarkCount() == 1)
             {
-                SdrMark* pMark = GetMarkedObjectList().GetMark(0);
+                SdrMark* pMark = rMarkList.GetMark(0);
                 SdrObject* pObj = pMark->GetMarkedSdrObj();
                 aRect.Union( pObj->GetLogicRect() );
             }
@@ -632,9 +639,10 @@ sal_Int8 View::ExecuteDrop( const ExecuteDropEvent& rEvt,
         {
             ::tools::Rectangle aRect( pOLV->GetOutputArea() );
 
-            if( GetMarkedObjectList().GetMarkCount() == 1 )
+            const SdrMarkList& rMarkList = GetMarkedObjectList();
+            if( rMarkList.GetMarkCount() == 1 )
             {
-                SdrMark* pMark = GetMarkedObjectList().GetMark(0);
+                SdrMark* pMark = rMarkList.GetMark(0);
                 SdrObject* pObj = pMark->GetMarkedSdrObj();
                 aRect.Union( pObj->GetLogicRect() );
             }
diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx
index 79401ef28aea..6a205211161d 100644
--- a/sd/source/ui/view/sdview3.cxx
+++ b/sd/source/ui/view/sdview3.cxx
@@ -401,11 +401,12 @@ bool View::InsertData( const TransferableDataHelper& 
rDataHelper,
                     if( !pPV->IsLayerLocked( aLayer ) )
                     {
                         pOwnData->SetInternalMove( true );
-                        GetMarkedObjectList().ForceSort();
+                        const SdrMarkList& rMarkList = GetMarkedObjectList();
+                        rMarkList.ForceSort();
 
-                        for( size_t nM = 0; nM < 
GetMarkedObjectList().GetMarkCount(); ++nM )
+                        for( size_t nM = 0; nM < rMarkList.GetMarkCount(); 
++nM )
                         {
-                            SdrMark*    pM = GetMarkedObjectList().GetMark( nM 
);
+                            SdrMark*    pM = rMarkList.GetMark( nM );
                             SdrObject*  pO = pM->GetMarkedSdrObj();
 
                             if( pO )
diff --git a/sd/source/ui/view/sdview5.cxx b/sd/source/ui/view/sdview5.cxx
index c593526189c2..dcd9d93c7769 100644
--- a/sd/source/ui/view/sdview5.cxx
+++ b/sd/source/ui/view/sdview5.cxx
@@ -60,11 +60,11 @@ SdrObject* View::GetSelectedSingleObject(SdPage const * 
pPage)
     SdrObject* pRet = nullptr;
     if( pPage )
     {
+        const SdrMarkList& rMarkList = GetMarkedObjectList();
+
         // first try selected shape
-        if ( GetMarkedObjectList().GetMarkCount() != 0 )
+        if ( rMarkList.GetMarkCount() != 0 )
         {
-            const SdrMarkList& rMarkList = GetMarkedObjectList();
-
             if (rMarkList.GetMarkCount() == 1)
             {
                 SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sd/source/ui/view/viewoverlaymanager.cxx 
b/sd/source/ui/view/viewoverlaymanager.cxx
index dfc6c61759fc..c786a70bd5e0 100644
--- a/sd/source/ui/view/viewoverlaymanager.cxx
+++ b/sd/source/ui/view/viewoverlaymanager.cxx
@@ -318,8 +318,9 @@ bool ChangePlaceholderTag::MouseButtonDown( const 
MouseEvent& /*rMEvt*/, SmartHd
 
         if( auto pPlaceholder = mxPlaceholderObj.get() )
         {
+            const SdrMarkList& rMarkList = mrView.GetMarkedObjectList();
             // mark placeholder if it is not currently marked (or if also 
others are marked)
-            if( !mrView.IsObjMarked( pPlaceholder.get() ) || 
(mrView.GetMarkedObjectList().GetMarkCount() != 1) )
+            if( !mrView.IsObjMarked( pPlaceholder.get() ) || 
(rMarkList.GetMarkCount() != 1) )
             {
                 SdrPageView* pPV = mrView.GetSdrPageView();
                 mrView.UnmarkAllObj(pPV );
diff --git a/sd/source/ui/view/viewshe3.cxx b/sd/source/ui/view/viewshe3.cxx
index 2bf5fafdfe44..31383ea7d560 100644
--- a/sd/source/ui/view/viewshe3.cxx
+++ b/sd/source/ui/view/viewshe3.cxx
@@ -66,7 +66,8 @@ void  ViewShell::GetMenuState( SfxItemSet &rSet )
 
         SdrView* pDrView = GetDrawView();
 
-        if( pDrView->GetMarkedObjectList().GetMarkCount() != 0 )
+        const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList();
+        if( rMarkList.GetMarkCount() != 0 )
         {
             SfxStyleSheet* pStyleSheet = pDrView->GetStyleSheet();
             if( pStyleSheet )
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index d5d23631f701..2f2cecf7aabd 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -450,7 +450,8 @@ bool ViewShell::KeyInput(const KeyEvent& rKEvt, 
::sd::Window* pWin)
     OSL_ASSERT(GetViewShell() != nullptr);
     bReturn = GetViewShell()->KeyInput(rKEvt);
 
-    const size_t OriCount = GetView()->GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetView()->GetMarkedObjectList();
+    const size_t OriCount = rMarkList.GetMarkCount();
     if(!bReturn)
     {
         if(useInputForSlideShow()) //IASS
@@ -486,7 +487,7 @@ bool ViewShell::KeyInput(const KeyEvent& rKEvt, 
::sd::Window* pWin)
             }
         }
     }
-    const size_t EndCount = GetView()->GetMarkedObjectList().GetMarkCount();
+    const size_t EndCount = rMarkList.GetMarkCount();
     // Here, oriCount or endCount must have one value=0, another value > 0, 
then to switch focus between Document and shape objects
     if(bReturn &&  (OriCount + EndCount > 0) && (OriCount * EndCount == 0))
         SwitchActiveViewFireFocus();
commit ac3f2bd367743cc28fe4728279c65125c6f30e7a
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Wed May 29 18:30:33 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri May 31 09:24:48 2024 +0200

    svx: Reduce number of calls to GetMarkedObjectList()
    
    from 447 to 208
    
    Change-Id: I7b289b61a4ec416b9809f1433bb7a824ef488cb9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168227
    Tested-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
index 31892b253b97..3d8d71f4d2e1 100644
--- a/svx/source/dialog/graphctl.cxx
+++ b/svx/source/dialog/graphctl.cxx
@@ -305,12 +305,13 @@ bool GraphCtrl::KeyInput( const KeyEvent& rKEvt )
         {
             if ( mbSdrMode )
             {
+                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if ( pView->IsAction() )
                 {
                     pView->BrkAction();
                     bProc = true;
                 }
-                else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+                else if ( rMarkList.GetMarkCount() != 0 )
                 {
                     pView->UnmarkAllObj();
                     bProc = true;
@@ -410,7 +411,8 @@ bool GraphCtrl::KeyInput( const KeyEvent& rKEvt )
                 nY = 0;
             }
 
-            if (pView->GetMarkedObjectList().GetMarkCount() != 0 && 
!aCode.IsMod1() )
+            const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+            if (rMarkList.GetMarkCount() != 0 && !aCode.IsMod1() )
             {
                 if(aCode.IsMod2())
                 {
diff --git a/svx/source/dialog/imapwnd.cxx b/svx/source/dialog/imapwnd.cxx
index ffe1a047d859..0de8de06a050 100644
--- a/svx/source/dialog/imapwnd.cxx
+++ b/svx/source/dialog/imapwnd.cxx
@@ -504,7 +504,7 @@ bool IMapWindow::Command(const CommandEvent& rCEvt)
         mxPopupMenu->set_sensitive(u"url"_ustr, false);
         mxPopupMenu->set_sensitive(u"active"_ustr, false);
         mxPopupMenu->set_sensitive(u"macro"_ustr, false);
-        mxPopupMenu->set_sensitive(u"selectall"_ustr, 
pModel->GetPage(0)->GetObjCount() != 
pView->GetMarkedObjectList().GetMarkCount());
+        mxPopupMenu->set_sensitive(u"selectall"_ustr, 
pModel->GetPage(0)->GetObjCount() != rMarkList.GetMarkCount());
 
         if ( !nMarked )
         {
diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx
index 3507bc1972bd..132eca98536b 100644
--- a/svx/source/engine3d/view3d.cxx
+++ b/svx/source/engine3d/view3d.cxx
@@ -88,9 +88,10 @@ public:
 
 Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& 
rView)
 :   mrView(rView),
-    mnCount(rView.GetMarkedObjectList().GetMarkCount()),
     mpPolygons(nullptr)
 {
+    const SdrMarkList& rMarkList = mrView.GetMarkedObjectList();
+    mnCount = rMarkList.GetMarkCount();
     if(!mnCount)
         return;
 
@@ -102,7 +103,7 @@ 
Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& rView)
         {
             for(size_t a = 0; a < mnCount; ++a)
             {
-                SdrObject* pObject = 
mrView.GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+                SdrObject* pObject = rMarkList.GetMark(a)->GetMarkedSdrObj();
 
                 if(pObject)
                 {
@@ -119,7 +120,7 @@ 
Impl3DMirrorConstructOverlay::Impl3DMirrorConstructOverlay(const E3dView& rView)
 
         for(size_t a = 0; a < mnCount; ++a)
         {
-            SdrObject* pObject = 
mrView.GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+            SdrObject* pObject = rMarkList.GetMark(a)->GetMarkedSdrObj();
             mpPolygons[mnCount - (a + 1)] = pObject->TakeXorPoly();
         }
     }
@@ -217,10 +218,11 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
     bool bSpecialHandling = false;
     E3dScene *pScene = nullptr;
 
-    const size_t nCnt = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nCnt = rMarkList.GetMarkCount();
     for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
     {
-        SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+        SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
         if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj))
         {
             // related scene
@@ -249,7 +251,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
         // objects
         for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
         {
-            SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+            SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
             if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj))
             {
                 // related scene
@@ -264,7 +266,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
 
         for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
         {
-            SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+            SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
             if(auto p3DObj = DynCastE3dObject(pObj))
             {
                 // Select object
@@ -276,7 +278,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
         if(nullptr != pScene)
         {
             // code from parent
-            GetMarkedObjectList().ForceSort();
+            rMarkList.ForceSort();
 
             pScene->SetDrawOnlySelected(true);
             pScene->SingleObjectPainter(rOut);
@@ -286,7 +288,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
         // Reset selection flag
         for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
         {
-            SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+            SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
             if(auto pCompoundObject = dynamic_cast<E3dCompoundObject*>(pObj))
             {
                 // related scene
@@ -313,12 +315,13 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() 
const
 {
     // Does 3D objects exist which scenes are not selected?
     bool bSpecialHandling(false);
-    const size_t nCount(GetMarkedObjectList().GetMarkCount());
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nCount(rMarkList.GetMarkCount());
     E3dScene *pScene = nullptr;
 
     for(size_t nObjs = 0; nObjs < nCount; ++nObjs)
     {
-        const SdrObject* pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+        const SdrObject* pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
 
         if(!bSpecialHandling)
             if(auto pCompoundObj = dynamic_cast< const 
E3dCompoundObject*>(pObj))
@@ -358,7 +361,7 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() 
const
     // and collect SnapRect of selected objects
     for(size_t nObjs = 0; nObjs < nCount; ++nObjs)
     {
-        SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+        SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
 
         if(auto p3DObj = dynamic_cast<E3dCompoundObject*>(pObj))
         {
@@ -370,7 +373,7 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() 
const
 
     // create new mark list which contains all indirectly selected3d
     // scenes as selected objects
-    SdrMarkList aOldML(GetMarkedObjectList());
+    SdrMarkList aOldML(rMarkList);
     SdrMarkList aNewML;
     SdrMarkList& rCurrentMarkList = 
const_cast<E3dView*>(this)->GetMarkedObjectListWriteAccess();
     rCurrentMarkList = aNewML;
@@ -585,9 +588,10 @@ bool E3dView::IsConvertTo3DObjPossible() const
     bool bGroupSelected(false);
     bool bRetval(true);
 
-    for(size_t a=0; !bAny3D && a<GetMarkedObjectList().GetMarkCount(); ++a)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    for(size_t a=0; !bAny3D && a<rMarkList.GetMarkCount(); ++a)
     {
-        SdrObject *pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+        SdrObject *pObj = rMarkList.GetMark(a)->GetMarkedSdrObj();
         if(pObj)
         {
             ImpIsConvertTo3DPossible(pObj, bAny3D, bGroupSelected);
@@ -812,7 +816,8 @@ void E3dView::ImpCreate3DObject(E3dScene* pScene, 
SdrObject* pObj, bool bExtrude
 
 void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const basegfx::B2DPoint& 
rPnt1, const basegfx::B2DPoint& rPnt2)
 {
-    if(GetMarkedObjectList().GetMarkCount() == 0)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if(rMarkList.GetMarkCount() == 0)
         return;
 
     // Create undo
@@ -821,7 +826,7 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const 
basegfx::B2DPoint& rPnt1
     else
         BegUndo(SvxResId(RID_SVX_3D_UNDO_LATHE));
 
-    SdrModel& 
rSdrModel(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()->getSdrModelFromSdrObject());
+    SdrModel& 
rSdrModel(rMarkList.GetMark(0)->GetMarkedSdrObj()->getSdrModelFromSdrObject());
 
     // Create a new scene for the created 3D object
     rtl::Reference<E3dScene> pScene = new E3dScene(rSdrModel);
@@ -877,9 +882,9 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const 
basegfx::B2DPoint& rPnt1
         aInvLatheMat.invert();
 
         // SnapRect extension enables mirroring in the axis of rotation
-        for(size_t a=0; a<GetMarkedObjectList().GetMarkCount(); ++a)
+        for(size_t a=0; a<rMarkList.GetMarkCount(); ++a)
         {
-            SdrMark* pMark = GetMarkedObjectList().GetMark(a);
+            SdrMark* pMark = rMarkList.GetMark(a);
             SdrObject* pObj = pMark->GetMarkedSdrObj();
             tools::Rectangle aTurnRect = pObj->GetSnapRect();
             basegfx::B2DPoint aRot;
@@ -917,9 +922,9 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const 
basegfx::B2DPoint& rPnt1
 
     // Walk through the selection and convert it into 3D, complete with
     // Conversion to SdrPathObject, also fonts
-    for(size_t a=0; a<GetMarkedObjectList().GetMarkCount(); ++a)
+    for(size_t a=0; a<rMarkList.GetMarkCount(); ++a)
     {
-        SdrMark* pMark = GetMarkedObjectList().GetMark(a);
+        SdrMark* pMark = rMarkList.GetMark(a);
         SdrObject* pObj = pMark->GetMarkedSdrObj();
 
         ImpCreate3DObject(pScene.get(), pObj, bExtrude, fDepth, aLatheMat);
@@ -945,7 +950,7 @@ void E3dView::ConvertMarkedObjTo3D(bool bExtrude, const 
basegfx::B2DPoint& rPnt1
 
         // Insert scene instead of the first selected object and throw away
         // all the old objects
-        SdrMark* pMark = GetMarkedObjectList().GetMark(0);
+        SdrMark* pMark = rMarkList.GetMark(0);
         if (pMark)
         {
             SdrObject* pRepObj = pMark->GetMarkedSdrObj();
@@ -1139,7 +1144,8 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* 
pOut,
     SdrHdl* pHdl, short nMinMov,
     SdrDragMethod* pForcedMeth)
 {
-    if(Is3DRotationCreationActive() && GetMarkedObjectList().GetMarkCount())
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if(Is3DRotationCreationActive() && rMarkList.GetMarkCount())
     {
         // Determine all selected polygons and return the mirrored helper 
overlay
         mpMirrorOverlay->SetMirrorAxis(maRef1, maRef2);
@@ -1160,15 +1166,15 @@ bool E3dView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut,
            bOwnActionNecessary = false;
         }
 
-        if(bOwnActionNecessary && GetMarkedObjectList().GetMarkCount() > 0)
+        if(bOwnActionNecessary && rMarkList.GetMarkCount() > 0)
         {
             E3dDragConstraint eConstraint = E3dDragConstraint::XYZ;
             bool bThereAreRootScenes = false;
             bool bThereAre3DObjects = false;
-            const size_t nCnt = GetMarkedObjectList().GetMarkCount();
+            const size_t nCnt = rMarkList.GetMarkCount();
             for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
             {
-                SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+                SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
                 if(pObj)
                 {
                     if( const E3dScene* pScene = DynCastE3dScene(pObj) )
@@ -1218,7 +1224,7 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* 
pOut,
 
                         // do not mask the allowed rotations
                         eConstraint &= E3dDragConstraint::XYZ;
-                        pForcedMeth = new E3dDragRotate(*this, 
GetMarkedObjectList(), eConstraint, IsSolidDragging());
+                        pForcedMeth = new E3dDragRotate(*this, rMarkList, 
eConstraint, IsSolidDragging());
                     }
                     break;
 
@@ -1226,7 +1232,7 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* 
pOut,
                     {
                         if(!bThereAreRootScenes)
                         {
-                            pForcedMeth = new E3dDragMove(*this, 
GetMarkedObjectList(), meDragHdl, eConstraint, IsSolidDragging());
+                            pForcedMeth = new E3dDragMove(*this, rMarkList, 
meDragHdl, eConstraint, IsSolidDragging());
                         }
                     }
                     break;
@@ -1288,7 +1294,8 @@ void E3dView::InitScene(E3dScene* pScene, double fW, 
double fH, double fCamZ)
 
 void E3dView::Start3DCreation()
 {
-    if (!GetMarkedObjectList().GetMarkCount())
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (!rMarkList.GetMarkCount())
         return;
 
     //positioned
@@ -1328,9 +1335,9 @@ void E3dView::Start3DCreation()
 
     // and then attach the marks at the top and bottom of the object
     basegfx::B2DRange aR;
-    for(size_t nMark = 0; nMark < GetMarkedObjectList().GetMarkCount(); 
++nMark)
+    for(size_t nMark = 0; nMark < rMarkList.GetMarkCount(); ++nMark)
     {
-        SdrObject* pMark = 
GetMarkedObjectList().GetMark(nMark)->GetMarkedSdrObj();
+        SdrObject* pMark = rMarkList.GetMark(nMark)->GetMarkedSdrObj();
         basegfx::B2DPolyPolygon aXPP(pMark->TakeXorPoly());
         aR.expand(basegfx::utils::getRange(aXPP));
     }
@@ -1368,7 +1375,7 @@ void E3dView::Start3DCreation()
     SetMarkHandles(nullptr);
 
     //HMHif (bVis) ShowMarkHdl();
-    if (GetMarkedObjectList().GetMarkCount() != 0) MarkListHasChanged();
+    if (rMarkList.GetMarkCount() != 0) MarkListHasChanged();
 
     // Show mirror polygon IMMEDIATELY
     const SdrHdlList &aHdlList = GetHdlList();
@@ -1424,7 +1431,8 @@ void E3dView::End3DCreation(bool 
bUseDefaultValuesForMirrorAxes)
 {
     ResetCreationActive();
 
-    if(GetMarkedObjectList().GetMarkCount() == 0)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if(rMarkList.GetMarkCount() == 0)
         return;
 
     if(bUseDefaultValuesForMirrorAxes)
@@ -1472,13 +1480,14 @@ void E3dView::InitView ()
 
 bool E3dView::IsBreak3DObjPossible() const
 {
-    const size_t nCount = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nCount = rMarkList.GetMarkCount();
 
     if (nCount > 0)
     {
         for (size_t i = 0; i < nCount; ++i)
         {
-            SdrObject* pObj = 
GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj();
+            SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
 
             if (auto p3dObject = DynCastE3dObject(pObj))
             {
@@ -1504,13 +1513,14 @@ void E3dView::Break3DObj()
     if(!IsBreak3DObjPossible())
         return;
 
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     // ALL selected objects are changed
-    const size_t nCount = GetMarkedObjectList().GetMarkCount();
+    const size_t nCount = rMarkList.GetMarkCount();
 
     BegUndo(SvxResId(RID_SVX_3D_UNDO_BREAK_LATHE));
     for(size_t a=0; a<nCount; ++a)
     {
-        E3dObject* pObj = 
static_cast<E3dObject*>(GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj());
+        E3dObject* pObj = 
static_cast<E3dObject*>(rMarkList.GetMark(a)->GetMarkedSdrObj());
         BreakSingle3DObj(pObj);
     }
     DeleteMarked();
@@ -1553,12 +1563,13 @@ void E3dView::CheckPossibilities()
     if(!(m_bGroupPossible || m_bUnGroupPossible || m_bGrpEnterPossible))
         return;
 
-    const size_t nMarkCnt = GetMarkedObjectList().GetMarkCount();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    const size_t nMarkCnt = rMarkList.GetMarkCount();
     bool bCompound = false;
     bool b3DObject = false;
     for(size_t nObjs = 0; (nObjs < nMarkCnt) && !bCompound; ++nObjs)
     {
-        SdrObject *pObj = 
GetMarkedObjectList().GetMark(nObjs)->GetMarkedSdrObj();
+        SdrObject *pObj = rMarkList.GetMark(nObjs)->GetMarkedSdrObj();
         if(dynamic_cast< const E3dCompoundObject* >(pObj))
             bCompound = true;
         if(DynCastE3dObject(pObj))
diff --git a/svx/source/engine3d/view3d1.cxx b/svx/source/engine3d/view3d1.cxx
index db5466dd287b..6b206f684b74 100644
--- a/svx/source/engine3d/view3d1.cxx
+++ b/svx/source/engine3d/view3d1.cxx
@@ -36,9 +36,10 @@ void E3dView::ConvertMarkedToPolyObj()
 {
     rtl::Reference<SdrObject> pNewObj;
 
-    if (GetMarkedObjectList().GetMarkCount() == 1)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() == 1)
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
 
         if (pObj)
         {
@@ -107,7 +108,7 @@ SfxItemSet E3dView::Get3DAttributes() const
 
     for(size_t a = 0; a < nMarkCnt; ++a)
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(a)->GetMarkedSdrObj();
         Imp_E3dView_InorderRun3DObjects(*pObj, nSelectedItems);
     }
 
@@ -150,7 +151,7 @@ void E3dView::Set3DAttributes( const SfxItemSet& rAttr)
 
     for(size_t a = 0; a < nMarkCnt; ++a)
     {
-        SdrObject* pObj = GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(a)->GetMarkedSdrObj();
         Imp_E3dView_InorderRun3DObjects(*pObj, nSelectedItems);
     }
 
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx
index 995ef538a2f6..369559233843 100644
--- a/svx/source/svdraw/svddrgmt.cxx
+++ b/svx/source/svdraw/svddrgmt.cxx
@@ -361,7 +361,8 @@ void 
SdrDragMethod::insertNewlyCreatedOverlayObjectForSdrDragMethod(
 
 void SdrDragMethod::createSdrDragEntries_SolidDrag()
 {
-    const size_t 
nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount());
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    const size_t nMarkCount(rMarkList.GetMarkCount());
     SdrPageView* pPV = getSdrDragView().GetSdrPageView();
 
     if(!pPV)
@@ -369,7 +370,7 @@ void SdrDragMethod::createSdrDragEntries_SolidDrag()
 
     for(size_t a = 0; a < nMarkCount; ++a)
     {
-        SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(a);
+        SdrMark* pM = rMarkList.GetMark(a);
 
         if(pM->GetPageView() == pPV)
         {
@@ -420,14 +421,15 @@ void SdrDragMethod::createSdrDragEntries_SolidDrag()
 
 void SdrDragMethod::createSdrDragEntries_PolygonDrag()
 {
-    const size_t 
nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount());
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    const size_t nMarkCount(rMarkList.GetMarkCount());
     bool bNoPolygons(getSdrDragView().IsNoDragXorPolys() || nMarkCount > 
SdrDragView::GetDragXorPolyLimit());
     basegfx::B2DPolyPolygon aResult;
     sal_uInt32 nPointCount(0);
 
     for(size_t a = 0; !bNoPolygons && a < nMarkCount; ++a)
     {
-        SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(a);
+        SdrMark* pM = rMarkList.GetMark(a);
 
         if(pM->GetPageView() == getSdrDragView().GetSdrPageView())
         {
@@ -467,12 +469,13 @@ void SdrDragMethod::createSdrDragEntries_PolygonDrag()
 
 void SdrDragMethod::createSdrDragEntries_PointDrag()
 {
-    const size_t 
nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount());
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    const size_t nMarkCount(rMarkList.GetMarkCount());
     std::vector< basegfx::B2DPoint > aPositions;
 
     for(size_t nm = 0; nm < nMarkCount; ++nm)
     {
-        SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(nm);
+        SdrMark* pM = rMarkList.GetMark(nm);
 
         if(pM->GetPageView() == getSdrDragView().GetSdrPageView())
         {
@@ -512,12 +515,13 @@ void SdrDragMethod::createSdrDragEntries_PointDrag()
 
 void SdrDragMethod::createSdrDragEntries_GlueDrag()
 {
-    const size_t 
nMarkCount(getSdrDragView().GetMarkedObjectList().GetMarkCount());
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    const size_t nMarkCount(rMarkList.GetMarkCount());
     std::vector< basegfx::B2DPoint > aPositions;
 
     for(size_t nm = 0; nm < nMarkCount; ++nm)
     {
-        SdrMark* pM = getSdrDragView().GetMarkedObjectList().GetMark(nm);
+        SdrMark* pM = rMarkList.GetMark(nm);
 
         if(pM->GetPageView() == getSdrDragView().GetSdrPageView())
         {
@@ -1628,12 +1632,12 @@ void SdrDragMove::MoveSdrDrag(const Point& rNoSnapPnt_)
     if (getSdrDragView().IsDraggingGluePoints())
     { // restrict gluepoints to the BoundRect of the Obj
         aPt1-=DragStat().GetStart();
-        const SdrMarkList& rML=GetMarkedObjectList();
-        const size_t nMarkCount=rML.GetMarkCount();
+        const SdrMarkList& rMarkList = GetMarkedObjectList();
+        const size_t nMarkCount = rMarkList.GetMarkCount();
 
         for (size_t nMarkNum=0; nMarkNum<nMarkCount; ++nMarkNum)
         {
-            const SdrMark* pM=rML.GetMark(nMarkNum);
+            const SdrMark* pM = rMarkList.GetMark(nMarkNum);
             const SdrUShortCont& rPts = pM->GetMarkedGluePoints();
 
             if (!rPts.empty())
@@ -2712,7 +2716,8 @@ void SdrDragGradient::MoveSdrDrag(const Point& rPnt)
     }
 
     // new state
-    
pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(),
 false, false);
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), false, 
false);
 }
 
 bool SdrDragGradient::EndSdrDrag(bool /*bCopy*/)
@@ -2721,7 +2726,8 @@ bool SdrDragGradient::EndSdrDrag(bool /*bCopy*/)
     Ref2() = pIAOHandle->Get2ndPos();
 
     // new state
-    
pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(),
 true, true);
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), true, 
true);
 
     return true;
 }
@@ -2739,7 +2745,8 @@ void SdrDragGradient::CancelSdrDrag()
         pIAOHandle->GetColorHdl2()->SetPos(DragStat().GetRef2());
 
     // new state
-    
pIAOHandle->FromIAOToItem(getSdrDragView().GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(),
 true, false);
+    const SdrMarkList& rMarkList = getSdrDragView().GetMarkedObjectList();
+    pIAOHandle->FromIAOToItem(rMarkList.GetMark(0)->GetMarkedSdrObj(), true, 
false);
 }
 
 PointerStyle SdrDragGradient::GetSdrDragPointer() const
@@ -3335,11 +3342,12 @@ bool SdrDragCrook::EndSdrDrag(bool bCopy)
                 if (bCopy)
                     getSdrDragView().CopyMarkedObj();
 
-                const size_t 
nMarkCount=getSdrDragView().GetMarkedObjectList().GetMarkCount();
+                const SdrMarkList& rMarkList = 
getSdrDragView().GetMarkedObjectList();
+                const size_t nMarkCount=rMarkList.GetMarkCount();
 
                 for (size_t nm=0; nm<nMarkCount; ++nm)
                 {
-                    SdrMark* 
pM=getSdrDragView().GetMarkedObjectList().GetMark(nm);
+                    SdrMark* pM=rMarkList.GetMark(nm);
                     SdrObject* pO=pM->GetMarkedSdrObj();
                     Point aCtr0(pO->GetSnapRect().Center());
                     Point aCtr1(aCtr0);
diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx
index b7ae687d9d0c..d123e900e9c7 100644
--- a/svx/source/svdraw/svddrgv.cxx
+++ b/svx/source/svdraw/svddrgv.cxx
@@ -144,11 +144,12 @@ bool SdrDragView::TakeDragObjAnchorPos(Point& rPos, bool 
bTR ) const
     tools::Rectangle aR;
     TakeActionRect(aR);
     rPos = bTR ? aR.TopRight() : aR.TopLeft();
-    if (GetMarkedObjectList().GetMarkCount()==1 && IsDragObj() && // only on 
single selection
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (rMarkList.GetMarkCount()==1 && IsDragObj() && // only on single 
selection
         !IsDraggingPoints() && !IsDraggingGluePoints() && // not when moving 
points
         dynamic_cast<const SdrDragMovHdl*>( mpCurrentSdrDragMethod.get() ) ==  
nullptr) // not when moving handles
     {
-        SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj();
         if (auto pCaptionObj = dynamic_cast<SdrCaptionObj*>(pObj))
         {
             Point aPt(pCaptionObj->GetTailPos());
@@ -206,11 +207,12 @@ bool SdrDragView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut, SdrHdl* pHdl
 
         Point aPnt(rPnt);
         basegfx::B2DVector aGridOffset(0.0, 0.0);
+        const SdrMarkList& rMarkList = GetMarkedObjectList();
 
         // Coordinate maybe affected by GridOffset, so we may need to
         // adapt to Model-coordinates here
         if((comphelper::LibreOfficeKit::isActive() && mpMarkedObj
-            && getPossibleGridOffsetForSdrObject(aGridOffset, 
GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), GetSdrPageView()))
+            && getPossibleGridOffsetForSdrObject(aGridOffset, 
rMarkList.GetMark(0)->GetMarkedSdrObj(), GetSdrPageView()))
             || (getPossibleGridOffsetForPosition(
             aGridOffset,
             basegfx::B2DPoint(aPnt.X(), aPnt.Y()),
@@ -267,9 +269,9 @@ bool SdrDragView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut, SdrHdl* pHdl
                         {
                             // are 3D objects selected?
                             bool b3DObjSelected = false;
-                            for(size_t a=0; !b3DObjSelected && 
a<GetMarkedObjectList().GetMarkCount(); ++a)
+                            for(size_t a=0; !b3DObjSelected && 
a<rMarkList.GetMarkCount(); ++a)
                             {
-                                SdrObject* pObj = 
GetMarkedObjectList().GetMark(a)->GetMarkedSdrObj();
+                                SdrObject* pObj = 
rMarkList.GetMark(a)->GetMarkedSdrObj();
                                 if(DynCastE3dObject(pObj))
                                     b3DObjSelected = true;
                             }
@@ -415,9 +417,9 @@ bool SdrDragView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut, SdrHdl* pHdl
                                 }
 
                                 bool bSingleTextObjMark = false;    // SJ: 
#i100490#
-                                if ( GetMarkedObjectList().GetMarkCount() == 1 
)
+                                if ( rMarkList.GetMarkCount() == 1 )
                                 {
-                                    
mpMarkedObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                                    
mpMarkedObj=rMarkList.GetMark(0)->GetMarkedSdrObj();
                                     if ( mpMarkedObj &&
                                         DynCastSdrTextObj( mpMarkedObj) !=  
nullptr &&
                                         
static_cast<SdrTextObj*>(mpMarkedObj)->IsTextFrame() )
@@ -433,7 +435,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut, SdrHdl* pHdl
                         {
                             if(SdrHdlKind::Move == meDragHdl)
                             {
-                                const bool bCustomShapeSelected(1 == 
GetMarkedObjectList().GetMarkCount() && dynamic_cast<const 
SdrObjCustomShape*>(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()) != 
nullptr);
+                                const bool bCustomShapeSelected(1 == 
rMarkList.GetMarkCount() && dynamic_cast<const 
SdrObjCustomShape*>(rMarkList.GetMark(0)->GetMarkedSdrObj()) != nullptr);
 
                                 if(bCustomShapeSelected)
                                 {
@@ -442,7 +444,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, 
OutputDevice* pOut, SdrHdl* pHdl
                             }
                             else if(SdrHdlKind::Poly == meDragHdl)
                             {
-                                const bool bConnectorSelected(1 == 
GetMarkedObjectList().GetMarkCount() && dynamic_cast<const 
SdrEdgeObj*>(GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()) != nullptr);
+                                const bool bConnectorSelected(1 == 
rMarkList.GetMarkCount() && dynamic_cast<const 
SdrEdgeObj*>(rMarkList.GetMark(0)->GetMarkedSdrObj()) != nullptr);
 
                                 if(bConnectorSelected)
                                 {
@@ -513,8 +515,9 @@ void SdrDragView::MovDragObj(const Point& rPnt)
 
     // Coordinate maybe affected by GridOffset, so we may need to
     // adapt to Model-coordinates here
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     if((comphelper::LibreOfficeKit::isActive() && mpMarkedObj
-        && getPossibleGridOffsetForSdrObject(aGridOffset, 
GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(), GetSdrPageView()))
+        && getPossibleGridOffsetForSdrObject(aGridOffset, 
rMarkList.GetMark(0)->GetMarkedSdrObj(), GetSdrPageView()))
         || (getPossibleGridOffsetForPosition(
         aGridOffset,
         basegfx::B2DPoint(aPnt.X(), aPnt.Y()),
@@ -711,12 +714,13 @@ bool SdrDragView::EndInsObjPoint(SdrCreateCmd eCmd)
 bool SdrDragView::IsInsGluePointPossible() const
 {
     bool bRet=false;
-    if (IsInsGluePointMode() && GetMarkedObjectList().GetMarkCount() != 0)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (IsInsGluePointMode() && rMarkList.GetMarkCount() != 0)
     {
-        if (GetMarkedObjectList().GetMarkCount()==1)
+        if (rMarkList.GetMarkCount()==1)
         {
             // return sal_False, if only 1 object which is a connector.
-            const SdrObject* 
pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+            const SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj();
             if (dynamic_cast<const SdrEdgeObj *>(pObj) == nullptr)
             {
                bRet=true;
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index f982a037b0f4..15fff60a8490 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -490,9 +490,10 @@ void SdrEditView::CheckPossibilities()
     if (!m_bPossibilitiesDirty)
         return;
 
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
     ImpResetPossibilityFlags();
-    GetMarkedObjectList().ForceSort();
-    const size_t nMarkCount = GetMarkedObjectList().GetMarkCount();
+    rMarkList.ForceSort();
+    const size_t nMarkCount = rMarkList.GetMarkCount();
     if (nMarkCount != 0)
     {
         m_bReverseOrderPossible = (nMarkCount >= 2);
@@ -504,7 +505,7 @@ void SdrEditView::CheckPossibilities()
         {
             // check bCombinePossible more thoroughly
             // still missing ...
-            const SdrObject* 
pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+            const SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj();
             //const SdrPathObj* pPath=dynamic_cast<SdrPathObj*>( pObj );
             bool bGroup=pObj->GetSubList()!=nullptr;
             bool bHasText=pObj->GetOutlinerParaObject()!=nullptr;
@@ -534,7 +535,7 @@ void SdrEditView::CheckPossibilities()
         if(m_bGradientAllowed)
         {
             // gradient depends on fill style
-            const SdrMark* pM = GetMarkedObjectList().GetMark(0);
+            const SdrMark* pM = rMarkList.GetMark(0);
             const SdrObject* pObj = pM->GetMarkedSdrObj();
 
             // may be group object, so get merged ItemSet
@@ -557,7 +558,7 @@ void SdrEditView::CheckPossibilities()
         const SdrPageView* pPV0=nullptr;
 
         for (size_t nm=0; nm<nMarkCount; ++nm) {
-            const SdrMark* pM=GetMarkedObjectList().GetMark(nm);
+            const SdrMark* pM=rMarkList.GetMark(nm);
             const SdrObject* pObj=pM->GetMarkedSdrObj();
             const SdrPageView* pPV=pM->GetPageView();
             if (pPV!=pPV0) {
@@ -663,7 +664,7 @@ void SdrEditView::CheckPossibilities()
     // Don't allow moving glued connectors.
     // Currently only implemented for single selection.
     if (nMarkCount==1) {
-        SdrObject* pObj=GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pObj=rMarkList.GetMark(0)->GetMarkedSdrObj();
         SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pObj );
         if (pEdge!=nullptr) {
-e 
... etc. - the rest is truncated

Reply via email to