sc/source/ui/Accessibility/AccessibleDocument.cxx |    4 +-
 sc/source/ui/drawfunc/drawsh.cxx                  |   17 +++++++-----
 sc/source/ui/drawfunc/drawsh2.cxx                 |    5 ++-
 sc/source/ui/drawfunc/drawsh5.cxx                 |   10 ++++---
 sc/source/ui/drawfunc/fuconstr.cxx                |   12 ++++----
 sc/source/ui/drawfunc/fudraw.cxx                  |   31 +++++++++-------------
 sc/source/ui/drawfunc/fuins1.cxx                  |    5 ++-
 sc/source/ui/drawfunc/fupoor.cxx                  |    4 +-
 sc/source/ui/drawfunc/fusel.cxx                   |   14 ++++-----
 sc/source/ui/drawfunc/futext.cxx                  |   15 ++++------
 sc/source/ui/drawfunc/graphsh.cxx                 |    8 ++---
 sc/source/ui/view/cliputil.cxx                    |   12 +++++---
 sc/source/ui/view/drawvie3.cxx                    |   24 ++++++++---------
 sc/source/ui/view/drawvie4.cxx                    |    4 +-
 sc/source/ui/view/drawview.cxx                    |   13 ++++-----
 sc/source/ui/view/gridwin.cxx                     |    5 ++-
 sc/source/ui/view/gridwin3.cxx                    |    8 +++--
 sc/source/ui/view/tabvwsh2.cxx                    |    9 +++---
 sc/source/ui/view/tabvwshb.cxx                    |   20 +++++++-------
 sc/source/ui/view/viewfun7.cxx                    |    8 ++---
 20 files changed, 122 insertions(+), 106 deletions(-)

New commits:
commit 049dd8300b1b5f97612e18ec2ef893645a38b9fa
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Fri May 31 10:12:33 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri May 31 13:57:49 2024 +0200

    sc: Reduce number of calls to GetMarkedObjectList()
    
    From 152 to 102
    
    Change-Id: I43907965e5b1ef0819495d6a1e7b18597a1b5947
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168283
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx 
b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 12b8d8c88014..94909b4fa21f 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -1007,9 +1007,9 @@ bool ScChildrenShapes::FindSelectedShapesChanges(const 
uno::Reference<drawing::X
         ScDrawView* pScDrawView = mpViewShell->GetViewData().GetScDrawView();
         if( pScDrawView )
         {
-            if( pScDrawView->GetMarkedObjectList().GetMarkCount() == 1 )
+            pMarkList = &(pScDrawView->GetMarkedObjectList());
+            if( pMarkList->GetMarkCount() == 1 )
             {
-                pMarkList = &(pScDrawView->GetMarkedObjectList());
                 pMarkedObj = pMarkList->GetMark(0)->GetMarkedSdrObj();
                 uno::Reference< drawing::XShape > xMarkedXShape 
(pMarkedObj->getUnoShape(), uno::UNO_QUERY);
                 if( aFocusedItr != aDataEndItr &&
diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx
index 68f277a1756c..2e11d3817ee5 100644
--- a/sc/source/ui/drawfunc/drawsh.cxx
+++ b/sc/source/ui/drawfunc/drawsh.cxx
@@ -255,7 +255,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq )
 
                 }
 
-                if( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+                if( rMarkList.GetMarkCount() != 0 )
                 {
                     std::unique_ptr<SfxItemSet> pNewArgs = 
rReq.GetArgs()->Clone();
                     lcl_convertStringArguments(*pNewArgs);
@@ -327,7 +327,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq )
 
         case SID_ATTR_TRANSFORM:
             {
-                if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+                if ( rMarkList.GetMarkCount() != 0 )
                 {
                     const SfxItemSet* pArgs = rReq.GetArgs();
 
@@ -476,9 +476,9 @@ void ScDrawShell::ExecuteMacroAssign(SdrObject* pObj, 
weld::Window* pWin)
 void ScDrawShell::ExecuteLineDlg( const SfxRequest& rReq )
 {
     ScDrawView*         pView       = rViewData.GetScDrawView();
-    bool                bHasMarked  = 
pView->GetMarkedObjectList().GetMarkCount() != 0;
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    bool                bHasMarked  = rMarkList.GetMarkCount() != 0;
     const SdrObject*    pObj        = nullptr;
-    const SdrMarkList&  rMarkList   = pView->GetMarkedObjectList();
 
     std::shared_ptr<SfxRequest> xRequest = std::make_shared<SfxRequest>(rReq);
 
@@ -514,7 +514,8 @@ void ScDrawShell::ExecuteLineDlg( const SfxRequest& rReq )
 void ScDrawShell::ExecuteAreaDlg( const SfxRequest& rReq )
 {
     ScDrawView* pView       = rViewData.GetScDrawView();
-    bool        bHasMarked  = pView->GetMarkedObjectList().GetMarkCount() != 0;
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    bool        bHasMarked  = rMarkList.GetMarkCount() != 0;
 
     std::shared_ptr<SfxRequest> xRequest = std::make_shared<SfxRequest>(rReq);
 
@@ -546,7 +547,8 @@ void ScDrawShell::ExecuteAreaDlg( const SfxRequest& rReq )
 void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq )
 {
     ScDrawView* pView       = rViewData.GetScDrawView();
-    bool        bHasMarked  = pView->GetMarkedObjectList().GetMarkCount() != 0;
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    bool        bHasMarked  = rMarkList.GetMarkCount() != 0;
     SfxItemSet  aNewAttr    ( pView->GetDefaultAttr() );
 
     if( bHasMarked )
@@ -573,7 +575,8 @@ void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq )
 void ScDrawShell::ExecuteMeasureDlg( SfxRequest& rReq )
 {
     ScDrawView* pView       = rViewData.GetScDrawView();
-    bool        bHasMarked  = pView->GetMarkedObjectList().GetMarkCount() != 0;
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    bool        bHasMarked  = rMarkList.GetMarkCount() != 0;
     SfxItemSet  aNewAttr    ( pView->GetDefaultAttr() );
 
     if( bHasMarked )
diff --git a/sc/source/ui/drawfunc/drawsh2.cxx 
b/sc/source/ui/drawfunc/drawsh2.cxx
index e8d7b233d743..fddc50fe5c13 100644
--- a/sc/source/ui/drawfunc/drawsh2.cxx
+++ b/sc/source/ui/drawfunc/drawsh2.cxx
@@ -392,7 +392,8 @@ void ScDrawShell::GetDrawAttrState( SfxItemSet& rSet )
     vcl::Window*     pWindow     = rViewData.GetActiveWin();
     ScDrawView* pDrView     = rViewData.GetScDrawView();
     Point       aPos        = pWindow->PixelToLogic(aMousePos);
-    bool        bHasMarked  = pDrView->GetMarkedObjectList().GetMarkCount() != 
0;
+    const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList();
+    bool        bHasMarked  = rMarkList.GetMarkCount() != 0;
 
     if( bHasMarked )
     {
@@ -448,7 +449,7 @@ void ScDrawShell::GetDrawAttrState( SfxItemSet& rSet )
     if ( bActionItem )
         return;
 
-    if ( pDrView->GetMarkedObjectList().GetMarkCount() != 0 )      // selected 
objects
+    if ( rMarkList.GetMarkCount() != 0 )      // selected objects
     {
         tools::Rectangle aRect = pDrView->GetAllMarkedRect();
         pPV->LogicToPagePos(aRect);
diff --git a/sc/source/ui/drawfunc/drawsh5.cxx 
b/sc/source/ui/drawfunc/drawsh5.cxx
index acf843dc3692..b3f344730aba 100644
--- a/sc/source/ui/drawfunc/drawsh5.cxx
+++ b/sc/source/ui/drawfunc/drawsh5.cxx
@@ -506,10 +506,11 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq )
 
         case SID_RENAME_OBJECT:
             {
-                if(1 == pView->GetMarkedObjectList().GetMarkCount())
+                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+                if(1 == rMarkList.GetMarkCount())
                 {
                     // #i68101#
-                    SdrObject* pSelected = 
pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                    SdrObject* pSelected = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
                     assert(pSelected && "ScDrawShell::ExecDrawFunc: 
nMarkCount, but no object (!)");
 
                     if(SC_LAYER_INTERN != pSelected->GetLayer())
@@ -580,9 +581,10 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq )
         // #i68101#
         case SID_TITLE_DESCRIPTION_OBJECT:
             {
-                if(1 == pView->GetMarkedObjectList().GetMarkCount())
+                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+                if(1 == rMarkList.GetMarkCount())
                 {
-                    SdrObject* pSelected = 
pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                    SdrObject* pSelected = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
                     assert(pSelected && "ScDrawShell::ExecDrawFunc: 
nMarkCount, but no object (!)");
 
                     if(SC_LAYER_INTERN != pSelected->GetLayer())
diff --git a/sc/source/ui/drawfunc/fuconstr.cxx 
b/sc/source/ui/drawfunc/fuconstr.cxx
index 2f3122dfba5c..717bb3db7a5c 100644
--- a/sc/source/ui/drawfunc/fuconstr.cxx
+++ b/sc/source/ui/drawfunc/fuconstr.cxx
@@ -66,12 +66,13 @@ bool FuConstruct::MouseButtonDown(const MouseEvent& rMEvt)
 
         SdrHdl* pHdl = pView->PickHandle(aMDPos);
 
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
         if ( pHdl != nullptr || pView->IsMarkedHit(aMDPos) )
         {
             pView->BegDragObj(aMDPos, nullptr, pHdl, 1);
             bReturn = true;
         }
-        else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+        else if ( rMarkList.GetMarkCount() != 0 )
         {
             pView->UnmarkAll();
             bReturn = true;
@@ -136,9 +137,9 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt)
     sal_uInt16 nClicks = rMEvt.GetClicks();
     if ( nClicks == 2 && rMEvt.IsLeft() )
     {
-        if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() != 0 )
         {
-            const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
             if (rMarkList.GetMarkCount() == 1)
             {
                 SdrMark* pMark = rMarkList.GetMark(0);
@@ -199,12 +200,13 @@ bool FuConstruct::SimpleMouseButtonUp(const MouseEvent& 
rMEvt)
     {
         pWindow->ReleaseMouse();
 
-        if ( pView->GetMarkedObjectList().GetMarkCount() == 0 && 
rMEvt.GetClicks() < 2 )
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() == 0 && rMEvt.GetClicks() < 2 )
         {
             pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1());
 
             SfxDispatcher& rDisp = rViewShell.GetViewData().GetDispatcher();
-            if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+            if ( rMarkList.GetMarkCount() != 0 )
                 rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | 
SfxCallMode::RECORD);
             else
                 rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | 
SfxCallMode::RECORD);
diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx
index 4e79d513b9f8..1e0c0e5f8ad5 100644
--- a/sc/source/ui/drawfunc/fudraw.cxx
+++ b/sc/source/ui/drawfunc/fudraw.cxx
@@ -193,6 +193,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
     bool bReturn = false;
     ScViewData& rViewData = rViewShell.GetViewData();
 
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
     switch ( rKEvt.GetKeyCode().GetCode() )
     {
         case KEY_ESCAPE:
@@ -209,7 +210,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                 rViewData.GetDispatcher().Execute(SID_OBJECT_SELECT, 
SfxCallMode::SLOT | SfxCallMode::RECORD);
                 bReturn = true;
             }
-            else if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+            else if ( rMarkList.GetMarkCount() != 0 )
             {
                 // III
                 SdrHdlList& rHdlList = const_cast< SdrHdlList& >( 
pView->GetHdlList() );
@@ -219,7 +220,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                     pView->UnmarkAll();
 
                 //  while bezier editing, object is selected
-                if (pView->GetMarkedObjectList().GetMarkCount() == 0)
+                if (rMarkList.GetMarkCount() == 0)
                     rViewShell.SetDrawShell( false );
 
                 bReturn = true;
@@ -237,7 +238,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
             {
                 // activate OLE object on RETURN for selected object
                 // put selected text object in edit mode
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() )
                 {
                     bool bOle = 
rViewShell.GetViewFrame().GetFrame().IsInPlace();
@@ -263,7 +263,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
             {
                 // put selected text object in edit mode
                 // (this is not SID_SETINPUTMODE, but F2 hardcoded, like in 
Writer)
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() )
                 {
                     SdrObject* pObj = rMarkList.GetMark( 0 
)->GetMarkedSdrObj();
@@ -287,7 +286,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
         {
             // in calc do NOT start draw object selection using TAB/SHIFT-TAB 
when
             // there is not yet an object selected
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
             {
                 vcl::KeyCode aCode = rKEvt.GetKeyCode();
 
@@ -307,7 +306,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                     }
 
                     // II
-                    if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+                    if(rMarkList.GetMarkCount() != 0)
                         pView->MakeVisible(pView->GetAllMarkedRect(), 
*pWindow);
 
                     bReturn = true;
@@ -343,7 +342,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
         {
             // in calc do NOT select the last draw object when
             // there is not yet an object selected
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
             {
                 vcl::KeyCode aCode = rKEvt.GetKeyCode();
 
@@ -354,7 +353,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                     pView->MarkNextObj();
 
                     // II
-                    if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+                    if(rMarkList.GetMarkCount() != 0)
                         pView->MakeVisible(pView->GetAllMarkedRect(), 
*pWindow);
 
                     bReturn = true;
@@ -367,7 +366,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
         {
             // in calc do NOT select the first draw object when
             // there is not yet an object selected
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
             {
                 vcl::KeyCode aCode = rKEvt.GetKeyCode();
 
@@ -378,7 +377,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
                     pView->MarkNextObj(true);
 
                     // II
-                    if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+                    if(rMarkList.GetMarkCount() != 0)
                         pView->MakeVisible(pView->GetAllMarkedRect(), 
*pWindow);
 
                     bReturn = true;
@@ -394,10 +393,9 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
         {
             // in calc do cursor travelling of draw objects only when
             // there is an object selected yet
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
             {
 
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if(rMarkList.GetMarkCount() == 1)
                 {
                     // disable cursor travelling on note objects as the tail 
connector position
@@ -562,7 +560,7 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
         case KEY_SPACE:
         {
             // in calc do only something when draw objects are selected
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
             {
                 const SdrHdlList& rHdlList = pView->GetHdlList();
                 SdrHdl* pHdl = rHdlList.GetFocusHdl();
@@ -633,7 +631,6 @@ bool FuDraw::KeyInput(const KeyEvent& rKEvt)
     {
         // allow direct typing into a selected text object
 
-        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
         if( !pView->IsTextEdit() && 1 == rMarkList.GetMarkCount() && 
EditEngine::IsSimpleCharInput(rKEvt) )
         {
             SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
@@ -748,10 +745,10 @@ bool FuDraw::IsSizingOrMovingNote( const MouseEvent& 
rMEvt ) const
     bool bIsSizingOrMoving = false;
     if ( rMEvt.IsLeft() )
     {
-        const SdrMarkList& rNoteMarkList = pView->GetMarkedObjectList();
-        if(rNoteMarkList.GetMarkCount() == 1)
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+        if(rMarkList.GetMarkCount() == 1)
         {
-            SdrObject* pObj = rNoteMarkList.GetMark( 0 )->GetMarkedSdrObj();
+            SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
             if ( ScDrawLayer::IsNoteCaption( pObj ) )
             {
                 Point aMPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
diff --git a/sc/source/ui/drawfunc/fuins1.cxx b/sc/source/ui/drawfunc/fuins1.cxx
index d58eb090b384..aa51747f864f 100644
--- a/sc/source/ui/drawfunc/fuins1.cxx
+++ b/sc/source/ui/drawfunc/fuins1.cxx
@@ -125,13 +125,14 @@ static void lcl_InsertGraphic( const Graphic& rGraphic,
         }
     }
     ScDrawView* pDrawView = rViewSh.GetScDrawView();
+    const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList();
 
     // #i123922# check if an existing object is selected; if yes, evtl. replace
     // the graphic for a SdrGraphObj (including link state updates) or adapt 
the fill
     // style for other objects
-    if(pDrawView && 1 == pDrawView->GetMarkedObjectList().GetMarkCount())
+    if(pDrawView && 1 == rMarkList.GetMarkCount())
     {
-        SdrObject* pPickObj = 
pDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+        SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
 
         if(pPickObj)
         {
diff --git a/sc/source/ui/drawfunc/fupoor.cxx b/sc/source/ui/drawfunc/fupoor.cxx
index 2f20077809b9..93b0e47ce010 100644
--- a/sc/source/ui/drawfunc/fupoor.cxx
+++ b/sc/source/ui/drawfunc/fupoor.cxx
@@ -251,9 +251,9 @@ bool FuPoor::doConstructOrthogonal() const
     }
 
     // Detect image/media and resize proportionally, but don't constrain 
movement by default
-    if (pView->GetMarkedObjectList().GetMarkCount() != 0)
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() != 0)
     {
-        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrObjKind aObjIdentifier = 
rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier();
diff --git a/sc/source/ui/drawfunc/fusel.cxx b/sc/source/ui/drawfunc/fusel.cxx
index a98ad29abe47..a88acf7b3fc0 100644
--- a/sc/source/ui/drawfunc/fusel.cxx
+++ b/sc/source/ui/drawfunc/fusel.cxx
@@ -376,11 +376,11 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
                 }
                 if ( pView )
                 {
-                    const SdrMarkList& rSdrMarkList = 
pView->GetMarkedObjectList();
-                    const size_t nMarkCount = rSdrMarkList.GetMarkCount();
+                    const SdrMarkList& rMarkList = 
pView->GetMarkedObjectList();
+                    const size_t nMarkCount = rMarkList.GetMarkCount();
                     for ( size_t i = 0; i < nMarkCount; ++i )
                     {
-                        SdrMark* pMark = rSdrMarkList.GetMark( i );
+                        SdrMark* pMark = rMarkList.GetMark( i );
                         pObj = ( pMark ? pMark->GetMarkedSdrObj() : nullptr );
                         if ( pObj )
                         {
@@ -416,13 +416,13 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
             // unlock internal layer to include note captions
             pView->UnlockInternalLayer();
             pView->EndAction();
-            if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+            const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+            if ( rMarkList.GetMarkCount() != 0 )
             {
                 bReturn = true;
 
                 /*  if multi-selection contains a note caption object, remove
                     all other objects from selection. */
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 const size_t nCount = rMarkList.GetMarkCount();
                 if( nCount > 1 )
                 {
@@ -464,9 +464,9 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
     sal_uInt16 nClicks = rMEvt.GetClicks();
     if (pView && nClicks == 2 && rMEvt.IsLeft())
     {
-        if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() != 0 )
         {
-            const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
             if (rMarkList.GetMarkCount() == 1)
             {
                 SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sc/source/ui/drawfunc/futext.cxx b/sc/source/ui/drawfunc/futext.cxx
index 9256c0a5dc49..9125e5f60b4a 100644
--- a/sc/source/ui/drawfunc/futext.cxx
+++ b/sc/source/ui/drawfunc/futext.cxx
@@ -377,6 +377,7 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
     if ( pView->MouseButtonUp(rMEvt, pWindow->GetOutDev()) )
         return true; // Event evaluated by SdrView
 
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
     if ( pView->IsDragObj() )
     {
         pView->EndDragObj( rMEvt.IsShift() );
@@ -390,7 +391,6 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
             if (aSfxRequest.GetSlot() == SID_DRAW_TEXT_MARQUEE)
             {
                 // create marquee-object?
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if (rMarkList.GetMark(0))
                 {
                     SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
@@ -414,7 +414,6 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
             bool bVertical = (SID_DRAW_TEXT_VERTICAL == nSlotID);
             if(bVertical)
             {
-                const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
                 if(rMarkList.GetMark(0))
                 {
                     SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
@@ -437,12 +436,12 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
             SetInEditMode();
 
                 // leave mode when sole click (-> fuconstr)
-            if ( pView->GetMarkedObjectList().GetMarkCount() == 0 )
+            if ( rMarkList.GetMarkCount() == 0 )
             {
                 pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1());
 
                 SfxDispatcher& rDisp = 
rViewShell.GetViewData().GetDispatcher();
-                if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+                if ( rMarkList.GetMarkCount() != 0 )
                     rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | 
SfxCallMode::RECORD);
                 else
                     rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | 
SfxCallMode::RECORD);
@@ -457,12 +456,12 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
     {
         pWindow->ReleaseMouse();
 
-        if ( pView->GetMarkedObjectList().GetMarkCount() == 0 && 
rMEvt.GetClicks() < 2 )
+        if ( rMarkList.GetMarkCount() == 0 && rMEvt.GetClicks() < 2 )
         {
             pView->MarkObj(aPnt, -2, false, rMEvt.IsMod1());
 
             SfxDispatcher& rDisp = rViewShell.GetViewData().GetDispatcher();
-            if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+            if ( rMarkList.GetMarkCount() != 0 )
                 rDisp.Execute(SID_OBJECT_SELECT, SfxCallMode::SLOT | 
SfxCallMode::RECORD);
             else
                 rDisp.Execute(aSfxRequest.GetSlot(), SfxCallMode::SLOT | 
SfxCallMode::RECORD);
@@ -541,9 +540,9 @@ void FuText::SetInEditMode(SdrObject* pObj, const Point* 
pMousePixel,
     if ( pObj && (pObj->GetLayer() == SC_LAYER_INTERN) )
         pView->UnlockInternalLayer();
 
-    if ( !pObj && pView->GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+    if ( !pObj && rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
         if (rMarkList.GetMarkCount() == 1)
         {
             SdrMark* pMark = rMarkList.GetMark(0);
diff --git a/sc/source/ui/drawfunc/graphsh.cxx 
b/sc/source/ui/drawfunc/graphsh.cxx
index f3061927aaea..05fac4b1a04f 100644
--- a/sc/source/ui/drawfunc/graphsh.cxx
+++ b/sc/source/ui/drawfunc/graphsh.cxx
@@ -112,12 +112,12 @@ void ScGraphicShell::ExecuteFilter( const SfxRequest& 
rReq )
             if( pGraphicObj->GetGraphicType() == GraphicType::Bitmap )
             {
                 SvxGraphicFilter::ExecuteGrfFilterSlot( rReq, 
pGraphicObj->GetGraphicObject(),
-                    [pView, pGraphicObj, pObj] (GraphicObject aFilterObj) -> 
void
+                    [pView, pGraphicObj, pObj, rMarkList] (GraphicObject 
aFilterObj) -> void
                     {
                         if( SdrPageView* pPageView = pView->GetSdrPageView() )
                         {
                             rtl::Reference<SdrGrafObj> pFilteredObj = 
SdrObject::Clone(*pGraphicObj, pGraphicObj->getSdrModelFromSdrObject());
-                            OUString aStr = 
pView->GetMarkedObjectList().GetMarkDescription() + " " + 
ScResId(SCSTR_UNDO_GRAFFILTER);
+                            OUString aStr = rMarkList.GetMarkDescription() + " 
" + ScResId(SCSTR_UNDO_GRAFFILTER);
                             pView->BegUndo( aStr );
                             pFilteredObj->SetGraphicObject( aFilterObj );
                             pView->ReplaceObjectAtView( pObj, *pPageView, 
pFilteredObj.get() );
@@ -208,7 +208,7 @@ void ScGraphicShell::ExecuteCompressGraphic( 
SAL_UNUSED_PARAMETER SfxRequest& )
                 {
                     rtl::Reference<SdrGrafObj> pNewObject = 
dialog.GetCompressedSdrGrafObj();
                     SdrPageView* pPageView = pView->GetSdrPageView();
-                    OUString aUndoString = 
pView->GetMarkedObjectList().GetMarkDescription() + " Compress";
+                    OUString aUndoString = rMarkList.GetMarkDescription() + " 
Compress";
                     pView->BegUndo( aUndoString );
                     pView->ReplaceObjectAtView( pObj, *pPageView, 
pNewObject.get() );
                     pView->EndUndo();
@@ -342,7 +342,7 @@ void ScGraphicShell::ExecuteChangePicture( 
SAL_UNUSED_PARAMETER SfxRequest& /*rR
                         rtl::Reference<SdrGrafObj> 
pNewObject(SdrObject::Clone(*pGraphicObj, 
pGraphicObj->getSdrModelFromSdrObject()));
                         pNewObject->SetGraphic( aGraphic );
                         SdrPageView* pPageView = pView->GetSdrPageView();
-                        OUString aUndoString = 
pView->GetMarkedObjectList().GetMarkDescription() + " Change";
+                        OUString aUndoString = rMarkList.GetMarkDescription() 
+ " Change";
                         pView->BegUndo( aUndoString );
                         pView->ReplaceObjectAtView( pObj, *pPageView, 
pNewObject.get() );
                         pView->EndUndo();
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx
index ec507c91c3a4..3c83c0066e70 100644
--- a/sc/source/ui/view/cliputil.cxx
+++ b/sc/source/ui/view/cliputil.cxx
@@ -85,12 +85,16 @@ void ScClipUtil::PasteFromClipboard( ScViewData& rViewData, 
ScTabViewShell* pTab
             pTabViewShell->PasteFromSystem();
             // Anchor To Cell rather than To Page
             ScDrawView* pDrawView = pTabViewShell->GetScDrawView();
-            if(pDrawView && 1 == 
pDrawView->GetMarkedObjectList().GetMarkCount())
+            if(pDrawView)
             {
-                SdrObject* pPickObj = 
pDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
-                if(pPickObj)
+                const SdrMarkList& rMarkList = 
pDrawView->GetMarkedObjectList();
+                if (1 == rMarkList.GetMarkCount())
                 {
-                    ScDrawLayer::SetCellAnchoredFromPosition( *pPickObj,  
rThisDoc, nThisTab, false );
+                    SdrObject* pPickObj = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
+                    if(pPickObj)
+                    {
+                        ScDrawLayer::SetCellAnchoredFromPosition( *pPickObj,  
rThisDoc, nThisTab, false );
+                    }
                 }
             }
         }
diff --git a/sc/source/ui/view/drawvie3.cxx b/sc/source/ui/view/drawvie3.cxx
index bb90c2a1c819..dfb77ccc9fd0 100644
--- a/sc/source/ui/view/drawvie3.cxx
+++ b/sc/source/ui/view/drawvie3.cxx
@@ -64,16 +64,16 @@ ScDrawView::ScDrawView(
 
 void ScDrawView::SetPageAnchored()
 {
-    if( GetMarkedObjectList().GetMarkCount() == 0 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() == 0 )
         return;
 
-    const SdrMarkList* pMark = &GetMarkedObjectList();
-    const size_t nCount = pMark->GetMarkCount();
+    const size_t nCount = rMarkList.GetMarkCount();
 
     BegUndo(ScResId(SCSTR_UNDO_PAGE_ANCHOR));
     for( size_t i=0; i<nCount; ++i )
     {
-        SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
         AddUndo (std::make_unique<ScUndoAnchorData>( pObj, &rDoc, nTab ));
         ScDrawLayer::SetPageAnchored( *pObj );
     }
@@ -89,16 +89,16 @@ void ScDrawView::SetPageAnchored()
 
 void ScDrawView::SetCellAnchored(bool bResizeWithCell)
 {
-    if( GetMarkedObjectList().GetMarkCount() == 0 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() == 0 )
         return;
 
-    const SdrMarkList* pMark = &GetMarkedObjectList();
-    const size_t nCount = pMark->GetMarkCount();
+    const size_t nCount = rMarkList.GetMarkCount();
 
     BegUndo(ScResId(SCSTR_UNDO_CELL_ANCHOR));
     for( size_t i=0; i<nCount; ++i )
     {
-        SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
         AddUndo (std::make_unique<ScUndoAnchorData>( pObj, &rDoc, nTab ));
         ScDrawLayer::SetCellAnchoredFromPosition(*pObj, rDoc, nTab, 
bResizeWithCell);
     }
@@ -118,13 +118,13 @@ ScAnchorType ScDrawView::GetAnchorType() const
     bool bPage = false;
     bool bCell = false;
     bool bCellResize = false;
-    if( GetMarkedObjectList().GetMarkCount() != 0 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if( rMarkList.GetMarkCount() != 0 )
     {
-        const SdrMarkList* pMark = &GetMarkedObjectList();
-        const size_t nCount = pMark->GetMarkCount();
+        const size_t nCount = rMarkList.GetMarkCount();
         for( size_t i=0; i<nCount; ++i )
         {
-            const SdrObject* pObj = pMark->GetMark(i)->GetMarkedSdrObj();
+            const SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
             const ScAnchorType aAnchorType = ScDrawLayer::GetAnchorType( *pObj 
);
             if( aAnchorType == SCA_CELL )
                 bCell =true;
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index 8e2b55b9ca7d..0d36c294a51b 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -57,7 +57,8 @@ Point aDragStartDiff;
 
 void ScDrawView::BeginDrag( vcl::Window* pWindow, const Point& rStartPos )
 {
-    if ( GetMarkedObjectList().GetMarkCount() == 0 )
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if ( rMarkList.GetMarkCount() == 0 )
         return;
 
     BrkAction();
@@ -67,7 +68,6 @@ void ScDrawView::BeginDrag( vcl::Window* pWindow, const 
Point& rStartPos )
     aDragStartDiff = rStartPos - aMarkedRect.TopLeft();
 
     bool bAnyOle, bOneOle;
-    const SdrMarkList& rMarkList = GetMarkedObjectList();
     CheckOle( rMarkList, bAnyOle, bOneOle );
 
     ScDocShellRef aDragShellRef;
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 26949721cd34..1c96d86facf0 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -137,11 +137,11 @@ ScDrawView::~ScDrawView()
 
 void ScDrawView::AddCustomHdl()
 {
-    const SdrMarkList &rMrkList = GetMarkedObjectList();
-    const size_t nCount = rMrkList.GetMarkCount();
+    const SdrMarkList &rMarkList = GetMarkedObjectList();
+    const size_t nCount = rMarkList.GetMarkCount();
     for(size_t nPos=0; nPos<nCount; ++nPos )
     {
-        SdrObject* pObj = rMrkList.GetMark(nPos)->GetMarkedSdrObj();
+        SdrObject* pObj = rMarkList.GetMark(nPos)->GetMarkedSdrObj();
         if (ScDrawObjData *pAnchor = ScDrawLayer::GetObjDataTab(pObj, nTab))
         {
             if (ScTabView* pView = pViewData->GetView())
@@ -211,7 +211,8 @@ void ScDrawView::InvalidateDrawTextAttrs()
 
 void ScDrawView::SetMarkedToLayer( SdrLayerID nLayerNo )
 {
-    if (GetMarkedObjectList().GetMarkCount() == 0)
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() == 0)
         return;
 
     //  #i11702# use SdrUndoObjectLayerChange for undo
@@ -357,9 +358,10 @@ void ScDrawView::MarkListHasChanged()
     FmFormView::MarkListHasChanged();
 
     ScTabViewShell* pViewSh = pViewData->GetViewShell();
+    const SdrMarkList& rMarkList = GetMarkedObjectList();
 
     // #i110829# remove the cell selection only if drawing objects are selected
-    if ( !bInConstruct && GetMarkedObjectList().GetMarkCount() )
+    if ( !bInConstruct && rMarkList.GetMarkCount() )
     {
         pViewSh->Unmark();      // remove cell selection
 
@@ -385,7 +387,6 @@ void ScDrawView::MarkListHasChanged()
     SdrOle2Obj* pOle2Obj = nullptr;
     SdrGrafObj* pGrafObj = nullptr;
 
-    const SdrMarkList& rMarkList = GetMarkedObjectList();
     const size_t nMarkCount = rMarkList.GetMarkCount();
 
     if ( nMarkCount == 0 && !pViewData->GetViewShell()->IsDrawSelMode() && 
!bInConstruct )
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index f1141dc3d8ab..9777f1bff331 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -4953,10 +4953,11 @@ void ScGridWindow::PasteSelection( const Point& 
rPosPixel )
     SdrView* pDrawView = mrViewData.GetViewShell()->GetScDrawView();
     if (pDrawView)
     {
-        const size_t nCount = pDrawView->GetMarkedObjectList().GetMarkCount();
+        const SdrMarkList& rMarkList = pDrawView->GetMarkedObjectList();
+        const size_t nCount = rMarkList.GetMarkCount();
         for (size_t i = 0; i < nCount; ++i)
         {
-            SdrObject* pObj = 
pDrawView->GetMarkedObjectList().GetMark(i)->GetMarkedSdrObj();
+            SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
             if (pObj && pObj->GetLogicRect().Contains(aLogicPos))
             {
                 // Inside an active drawing object.  Bail out.
diff --git a/sc/source/ui/view/gridwin3.cxx b/sc/source/ui/view/gridwin3.cxx
index b0a8c0e3628b..c0aa97ded4c6 100644
--- a/sc/source/ui/view/gridwin3.cxx
+++ b/sc/source/ui/view/gridwin3.cxx
@@ -180,12 +180,13 @@ bool ScGridWindow::DrawKeyInput(const KeyEvent& rKEvt, 
vcl::Window* pWin)
     if (pDrView && pDraw && !mrViewData.IsRefMode())
     {
         pDraw->SetWindow( this );
-        bool bOldMarked = pDrView->GetMarkedObjectList().GetMarkCount() != 0;
+        const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList();
+        bool bOldMarked = rMarkList.GetMarkCount() != 0;
         if (pDraw->KeyInput( rKEvt ))
         {
             bool bLeaveDraw = false;
             bool bUsed = true;
-            bool bNewMarked = pDrView->GetMarkedObjectList().GetMarkCount() != 
0;
+            bool bNewMarked = rMarkList.GetMarkCount() != 0;
             if ( !mrViewData.GetView()->IsDrawSelMode() )
                 if ( !bNewMarked )
                 {
@@ -363,7 +364,8 @@ void ScGridWindow::UpdateStatusPosSize()
     }
     if ( !bActionItem )
     {
-        if ( pDrView->GetMarkedObjectList().GetMarkCount() != 0 ) // selected 
objects
+        const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList();
+        if ( rMarkList.GetMarkCount() != 0 ) // selected objects
         {
             tools::Rectangle aRect = pDrView->GetAllMarkedRect();
             pPV->LogicToPagePos(aRect);
diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index 593507098f07..8ff41cc374bd 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -163,17 +163,18 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
 
     pView->LockBackgroundLayer( !bEx );
 
+    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
     if ( bSelectFirst )
     {
         // select first draw object if none is selected yet
-        if(pView->GetMarkedObjectList().GetMarkCount() == 0)
+        if(rMarkList.GetMarkCount() == 0)
         {
             // select first object
             pView->UnmarkAllObj();
             pView->MarkNextObj(true);
 
             // ...and make it visible
-            if(pView->GetMarkedObjectList().GetMarkCount() != 0)
+            if(rMarkList.GetMarkCount() != 0)
                 pView->MakeVisible(pView->GetAllMarkedRect(), *pWin);
         }
     }
@@ -186,7 +187,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
         SetDrawTextShell(true);
     else
     {
-        if (bEx || pView->GetMarkedObjectList().GetMarkCount() != 0)
+        if (bEx || rMarkList.GetMarkCount() != 0)
             SetDrawShellOrSub();
         else
             SetDrawShell(false);
@@ -214,7 +215,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
     {
         case SID_OBJECT_SELECT:
             // not always switch back
-            if(pView->GetMarkedObjectList().GetMarkCount() == 0) 
SetDrawShell(bEx);
+            if(rMarkList.GetMarkCount() == 0) SetDrawShell(bEx);
             pTabView->SetDrawFuncPtr(new FuSelection(*this, pWin, pView, 
&rModel, aNewReq));
             break;
 
diff --git a/sc/source/ui/view/tabvwshb.cxx b/sc/source/ui/view/tabvwshb.cxx
index 08400cdce9eb..9bd0ab29d47e 100644
--- a/sc/source/ui/view/tabvwshb.cxx
+++ b/sc/source/ui/view/tabvwshb.cxx
@@ -497,10 +497,9 @@ void ScTabViewShell::ExecDrawIns(SfxRequest& rReq)
                     const SfxRectangleItem& rRect = 
rReq.GetArgs()->Get(SID_OBJECTRESIZE);
                     tools::Rectangle aRect( pWin->PixelToLogic( 
rRect.GetValue() ) );
 
-                    if ( pView->GetMarkedObjectList().GetMarkCount() != 0 )
+                    const SdrMarkList& rMarkList = 
pView->GetMarkedObjectList();
+                    if ( rMarkList.GetMarkCount() != 0 )
                     {
-                        const SdrMarkList& rMarkList = 
pView->GetMarkedObjectList();
-
                         if (rMarkList.GetMarkCount() == 1)
                         {
                             SdrMark* pMark = rMarkList.GetMark(0);
@@ -704,10 +703,11 @@ bool ScTabViewShell::IsSignatureLineSelected()
     if (!pSdrView)
         return false;
 
-    if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1)
+    const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() != 1)
         return false;
 
-    SdrObject* pPickObj = 
pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+    SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
     if (!pPickObj)
         return false;
 
@@ -724,10 +724,11 @@ bool ScTabViewShell::IsQRCodeSelected()
     if (!pSdrView)
         return false;
 
-    if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1)
+    const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() != 1)
         return false;
 
-    SdrObject* pPickObj = 
pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+    SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
     if (!pPickObj)
         return false;
 
@@ -750,10 +751,11 @@ bool ScTabViewShell::IsSignatureLineSigned()
     if (!pSdrView)
         return false;
 
-    if (pSdrView->GetMarkedObjectList().GetMarkCount() != 1)
+    const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+    if (rMarkList.GetMarkCount() != 1)
         return false;
 
-    SdrObject* pPickObj = 
pSdrView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+    SdrObject* pPickObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
     if (!pPickObj)
         return false;
 
diff --git a/sc/source/ui/view/viewfun7.cxx b/sc/source/ui/view/viewfun7.cxx
index ac447af17f0a..0656cc416238 100644
--- a/sc/source/ui/view/viewfun7.cxx
+++ b/sc/source/ui/view/viewfun7.cxx
@@ -146,11 +146,11 @@ void ScViewFunc::PasteDraw( const Point& rLogicPos, 
SdrModel* pModel,
                 ScChartHelper::GetChartNames( aExcludedChartNames, pDestPage );
             }
 
-            SdrMarkList aMark = pDragEditView->GetMarkedObjectList();
-            aMark.ForceSort();
-            const size_t nMarkCnt=aMark.GetMarkCount();
+            const SdrMarkList& rMarkList = 
pDragEditView->GetMarkedObjectList();
+            rMarkList.ForceSort();
+            const size_t nMarkCnt=rMarkList.GetMarkCount();
             for (size_t nm=0; nm<nMarkCnt; ++nm) {
-                const SdrMark* pM=aMark.GetMark(nm);
+                const SdrMark* pM=rMarkList.GetMark(nm);
                 const SdrObject* pObj=pM->GetMarkedSdrObj();
 
                 // Directly Clone to target SdrModel

Reply via email to