summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-11-11 11:08:55 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-11-11 17:24:53 +0100
commita8a064d11c05feed83f05b0ce8209f7054afd804 (patch)
tree3a64572d1d12d64b707c50607056f405c3615fcf /sc/source/ui
parent33d966ecc1f9fc44016cdeeed15dbaf6bda68eda (diff)
sc: rowcol: tdf#50916 convert mark data structures
Change-Id: I9b706c9bcc2925f72cc024142ffe72af5ddea82a Reviewed-on: https://gerrit.libreoffice.org/82419 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/Accessibility/AccessibleCell.cxx2
-rw-r--r--sc/source/ui/app/transobj.cxx4
-rw-r--r--sc/source/ui/dataprovider/dataprovider.cxx2
-rw-r--r--sc/source/ui/docshell/arealink.cxx4
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx2
-rw-r--r--sc/source/ui/docshell/dbdocimp.cxx4
-rw-r--r--sc/source/ui/docshell/docfunc.cxx28
-rw-r--r--sc/source/ui/docshell/docsh.cxx2
-rw-r--r--sc/source/ui/docshell/docsh5.cxx4
-rw-r--r--sc/source/ui/docshell/impex.cxx4
-rw-r--r--sc/source/ui/drawfunc/futext3.cxx2
-rw-r--r--sc/source/ui/navipi/content.cxx4
-rw-r--r--sc/source/ui/undo/undoblk.cxx14
-rw-r--r--sc/source/ui/undo/undoblk3.cxx2
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx38
-rw-r--r--sc/source/ui/unoobj/cursuno.cxx4
-rw-r--r--sc/source/ui/unoobj/docuno.cxx12
-rw-r--r--sc/source/ui/unoobj/funcuno.cxx4
-rw-r--r--sc/source/ui/vba/vbarange.cxx2
-rw-r--r--sc/source/ui/vba/vbaworksheets.cxx3
-rw-r--r--sc/source/ui/view/cellsh1.cxx2
-rw-r--r--sc/source/ui/view/gridwin.cxx2
-rw-r--r--sc/source/ui/view/gridwin4.cxx2
-rw-r--r--sc/source/ui/view/viewdata.cxx2
-rw-r--r--sc/source/ui/view/viewfun4.cxx2
-rw-r--r--sc/source/ui/view/viewfun5.cxx2
-rw-r--r--sc/source/ui/view/viewfunc.cxx4
27 files changed, 79 insertions, 78 deletions
diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx
index 956b1db6bbc8..5e1d077a4de3 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -564,7 +564,7 @@ bool ScAccessibleCell::IsDropdown() const
if ( nTab+1<nTabCount && mpDoc->IsScenario(nTab+1) && !mpDoc->IsScenario(nTab) )
{
SCTAB i;
- ScMarkData aMarks;
+ ScMarkData aMarks(mpDoc->MaxRow(), mpDoc->MaxCol());
for (i=nTab+1; i<nTabCount && mpDoc->IsScenario(i); i++)
mpDoc->MarkScenario( i, nTab, aMarks, false, ScScenarioFlags::ShowFrame );
ScRangeList aRanges;
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index 62db9a961102..88f80d77f272 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -646,7 +646,7 @@ ScDocShell* ScTransferObj::GetSourceDocShell()
ScMarkData ScTransferObj::GetSourceMarkData() const
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(m_pDoc->MaxRow(), m_pDoc->MaxCol());
ScCellRangesBase* pRangesObj = comphelper::getUnoTunnelImplementation<ScCellRangesBase>( m_xDragSourceRanges );
if (pRangesObj)
{
@@ -671,7 +671,7 @@ void ScTransferObj::InitDocShell(bool bLimitToPageSize)
pDocSh->DoInitNew();
ScDocument& rDestDoc = pDocSh->GetDocument();
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDestDoc.MaxRow(), rDestDoc.MaxCol());
aDestMark.SelectTable( 0, true );
rDestDoc.SetDocOptions( m_pDoc->GetDocOptions() ); // #i42666#
diff --git a/sc/source/ui/dataprovider/dataprovider.cxx b/sc/source/ui/dataprovider/dataprovider.cxx
index 34b4631c8614..e75fb326a64c 100644
--- a/sc/source/ui/dataprovider/dataprovider.cxx
+++ b/sc/source/ui/dataprovider/dataprovider.cxx
@@ -237,7 +237,7 @@ void ScDBDataManager::WriteToDoc(ScDocument& rDoc)
SCROW nRowSize = std::min<SCROW>(aDestRange.aEnd.Row() - aDestRange.aStart.Row(), nEndRow);
aDestRange.aEnd.SetRow(aDestRange.aStart.Row() + nRowSize);
- ScMarkData aMark;
+ ScMarkData aMark(mpDoc->MaxRow(), mpDoc->MaxCol());
aMark.SelectTable(0, true);
mpDoc->CopyFromClip(aDestRange, aMark, InsertDeleteFlags::CONTENTS, nullptr, &rDoc);
ScDocShell* pDocShell = static_cast<ScDocShell*>(mpDoc->GetDocumentShell());
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index fab53d07bd8c..366f17198650 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -374,7 +374,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
{
ScRange const & rTokenRange( aSourceRanges[nRange]);
SCTAB nSrcTab = rTokenRange.aStart.Tab();
- ScMarkData aSourceMark;
+ ScMarkData aSourceMark(rSrcDoc.MaxRow(), rSrcDoc.MaxCol());
aSourceMark.SelectOneTable( nSrcTab ); // selecting for CopyToClip
aSourceMark.SetMarkArea( rTokenRange );
@@ -394,7 +394,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
aNewTokenRange.aEnd.SetCol( aNewTokenRange.aStart.Col() + (rTokenRange.aEnd.Col() - rTokenRange.aStart.Col()) );
aNewTokenRange.aEnd.SetRow( aNewTokenRange.aStart.Row() + (rTokenRange.aEnd.Row() - rTokenRange.aStart.Row()) );
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SelectOneTable( nDestTab );
aDestMark.SetMarkArea( aNewTokenRange );
rDoc.CopyFromClip( aNewTokenRange, aDestMark, InsertDeleteFlags::ALL, nullptr, &aClipDoc, false );
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 77c8b507277a..b4dff2ee24b8 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -837,7 +837,7 @@ bool ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam,
aOldForm.aEnd.SetRow( aOldDest.aEnd.Row() );
rDoc.FitBlock( aOldForm, aNewForm, false );
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SelectOneTable(nDestTab);
SCROW nFStartY = aLocalParam.nRow1 + ( aLocalParam.bHasHeader ? 1 : 0 );
diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx
index 5bba7356a653..4e95f43169c2 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -471,7 +471,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
pUndoDBData.reset(new ScDBData( *pDBData ));
}
- ScMarkData aNewMark;
+ ScMarkData aNewMark(rDoc.MaxRow(), rDoc.MaxCol());
aNewMark.SelectOneTable( nTab );
if (bRecord)
@@ -535,7 +535,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
nEndCol+nFormulaCols, nEndRow, nTab,
InsertDeleteFlags::ATTRIB, false, rDoc);
// fill formulas
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SelectOneTable(nTab);
sal_uLong nProgCount = nFormulaCols;
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index 957b515759fb..1a2a61e263fa 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -1184,7 +1184,7 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine,
aPattern.GetItemSet().ClearItem( ATTR_HOR_JUSTIFY ); // wasn't removed above if no edit object
if ( aPattern.GetItemSet().Count() > 0 )
{
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SelectTable( rPos.Tab(), true );
aMark.SetMarkArea( ScRange( rPos ) );
ApplyAttributes( aMark, aPattern, bApi );
@@ -1740,7 +1740,7 @@ bool ScDocFunc::InsertCells( const ScRange& rRange, const ScMarkData* pTabMark,
if (bRecord && !rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -2245,7 +2245,7 @@ bool ScDocFunc::DeleteCells( const ScRange& rRange, const ScMarkData* pTabMark,
if (!rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -2827,7 +2827,7 @@ bool ScDocFunc::MoveBlock( const ScRange& rSource, const ScAddress& rDestPos,
ScDocumentUniquePtr pClipDoc(new ScDocument(SCDOCMODE_CLIP));
- ScMarkData aSourceMark;
+ ScMarkData aSourceMark(rDoc.MaxRow(), rDoc.MaxCol());
for (nTab=nStartTab; nTab<=nEndTab; nTab++)
aSourceMark.SelectTable( nTab, true ); // select source
aSourceMark.SetMarkArea( rSource );
@@ -2948,7 +2948,7 @@ bool ScDocFunc::MoveBlock( const ScRange& rSource, const ScAddress& rDestPos,
bool bSourceHeight = false; // adjust heights?
if (bCut)
{
- ScMarkData aDelMark; // only for tables
+ ScMarkData aDelMark(rDoc.MaxRow(), rDoc.MaxCol()); // only for tables
for (nTab=nStartTab; nTab<=nEndTab; nTab++)
{
rDoc.DeleteAreaTab( nStartCol,nStartRow, nOldEndCol,nOldEndRow, nTab, InsertDeleteFlags::ALL );
@@ -2983,7 +2983,7 @@ bool ScDocFunc::MoveBlock( const ScRange& rSource, const ScAddress& rDestPos,
ScRange aPasteDest( nDestCol, nDestRow, nDestTab, nDestEndCol, nDestEndRow, nDestEndTab );
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
for (nTab=nDestTab; nTab<=nDestEndTab; nTab++)
aDestMark.SelectTable( nTab, true ); // select destination
aDestMark.SetMarkArea( aPasteDest );
@@ -3733,7 +3733,7 @@ bool ScDocFunc::SetWidthOrHeight(
if (bRecord)
{
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SelectOneTable( nTab );
rDocShell.GetUndoManager()->AddUndoAction(
std::make_unique<ScUndoWidthOrHeight>(
@@ -4169,7 +4169,7 @@ bool ScDocFunc::AutoFormat( const ScRange& rRange, const ScMarkData* pTabMark,
bool bRecord = true;
if (!rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -4283,7 +4283,7 @@ bool ScDocFunc::EnterMatrix( const ScRange& rRange, const ScMarkData* pTabMark,
SCROW nEndRow = rRange.aEnd.Row();
SCTAB nEndTab = rRange.aEnd.Tab();
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -4370,7 +4370,7 @@ bool ScDocFunc::TabOp( const ScRange& rRange, const ScMarkData* pTabMark,
if (bRecord && !rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -4514,7 +4514,7 @@ bool ScDocFunc::FillSimple( const ScRange& rRange, const ScMarkData* pTabMark,
if (!rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -4627,7 +4627,7 @@ bool ScDocFunc::FillSeries( const ScRange& rRange, const ScMarkData* pTabMark,
if (!rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -4760,7 +4760,7 @@ bool ScDocFunc::FillAuto( ScRange& rRange, const ScMarkData* pTabMark, FillDir e
if (bRecord && !rDoc.IsUndoEnabled())
bRecord = false;
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
if (pTabMark)
aMark = *pTabMark;
else
@@ -5439,7 +5439,7 @@ void ScDocFunc::ResizeMatrix( const ScRange& rOldRange, const ScAddress& rNewEnd
aFormula = aFormula.copy(1, aFormula.getLength()-2);
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SetMarkArea( rOldRange );
aMark.SelectTable( nTab, true );
ScRange aNewRange( rOldRange.aStart, rNewEnd );
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 556d4645f50b..0fd41c54d957 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -1602,7 +1602,7 @@ bool ScDocShell::ConvertFrom( SfxMedium& rMedium )
m_aDocument.GetCellArea( nTab, nEndCol, nEndRow );
aColWidthRange.aEnd.SetCol( nEndCol );
aColWidthRange.aEnd.SetRow( nEndRow );
- ScMarkData aMark;
+ ScMarkData aMark(m_aDocument.MaxRow(), m_aDocument.MaxCol());
aMark.SetMarkArea( aColWidthRange );
aMark.MarkToMulti();
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index efeff05e94e7..ea851d9b9d1b 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -442,7 +442,7 @@ void ScDocShell::UpdatePendingRowHeights( SCTAB nUpdateTab, bool bBefore )
if ( nUpdateTab >= nTabCount )
nUpdateTab = nTabCount-1; // nUpdateTab is inclusive
- ScMarkData aUpdateSheets;
+ ScMarkData aUpdateSheets(m_aDocument.MaxRow(), m_aDocument.MaxCol());
SCTAB nTab;
for (nTab=0; nTab<=nUpdateTab; ++nTab)
if ( m_aDocument.IsPendingRowHeights( nTab ) )
@@ -681,7 +681,7 @@ void ScDocShell::UseScenario( SCTAB nTab, const OUString& rName, bool bRecord )
if ( m_aDocument.TestCopyScenario( nSrcTab, nTab ) ) // test cell protection
{
ScDocShellModificator aModificator( *this );
- ScMarkData aScenMark;
+ ScMarkData aScenMark(m_aDocument.MaxRow(), m_aDocument.MaxCol());
m_aDocument.MarkScenario( nSrcTab, nTab, aScenMark );
ScRange aMultiRange;
aScenMark.GetMultiMarkArea( aMultiRange );
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 0619425319be..1f3e733809cd 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -258,7 +258,7 @@ void ScImportExport::EndPaste(bool bAutoRowHeight)
ScDocumentUniquePtr pRedoDoc(new ScDocument( SCDOCMODE_UNDO ));
pRedoDoc->InitUndo( pDoc, aRange.aStart.Tab(), aRange.aEnd.Tab() );
pDoc->CopyToDocument(aRange, InsertDeleteFlags::ALL | InsertDeleteFlags::NOCAPTIONS, false, *pRedoDoc);
- ScMarkData aDestMark;
+ ScMarkData aDestMark(pRedoDoc->MaxRow(), pRedoDoc->MaxCol());
aDestMark.SetMarkArea(aRange);
pDocSh->GetUndoManager()->AddUndoAction(
std::make_unique<ScUndoPaste>(pDocSh, aRange, aDestMark, std::move(pUndoDoc), std::move(pRedoDoc), InsertDeleteFlags::ALL, nullptr));
@@ -1935,7 +1935,7 @@ bool ScImportExport::Sylk2Doc( SvStream& rStrm )
pDoc->CheckLinkFormulaNeedingCheck(*xCode);
if ( ch == 'M' )
{
- ScMarkData aMark;
+ ScMarkData aMark(pDoc->MaxRow(), pDoc->MaxCol());
aMark.SelectTable( aPos.Tab(), true );
pDoc->InsertMatrixFormula( nCol, nRow, nRefCol,
nRefRow, aMark, EMPTY_OUSTRING, xCode.get() );
diff --git a/sc/source/ui/drawfunc/futext3.cxx b/sc/source/ui/drawfunc/futext3.cxx
index cbdcefb7d893..7da2e6128493 100644
--- a/sc/source/ui/drawfunc/futext3.cxx
+++ b/sc/source/ui/drawfunc/futext3.cxx
@@ -160,7 +160,7 @@ void FuText::StopEditMode()
// Make sure the former area of the note anchor is invalidated.
ScRangeList aRangeList(aNotePos);
- ScMarkData aMarkData(aRangeList);
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol(), aRangeList);
rViewShell.UpdateSelectionArea(aMarkData);
}
else if( bNewNote || bDeleteNote )
diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx
index c6038662e754..bb3168956dd2 100644
--- a/sc/source/ui/navipi/content.cxx
+++ b/sc/source/ui/navipi/content.cxx
@@ -1251,11 +1251,11 @@ static void lcl_DoDragObject( ScDocShell* pSrcShell, const OUString& rName, ScCo
static void lcl_DoDragCells( ScDocShell* pSrcShell, const ScRange& rRange, ScDragSrc nFlags, vcl::Window* pWin )
{
- ScMarkData aMark;
+ ScDocument& rSrcDoc = pSrcShell->GetDocument();
+ ScMarkData aMark(rSrcDoc.MaxRow(), rSrcDoc.MaxCol());
aMark.SelectTable( rRange.aStart.Tab(), true );
aMark.SetMarkArea( rRange );
- ScDocument& rSrcDoc = pSrcShell->GetDocument();
if ( !rSrcDoc.HasSelectedBlockMatrixFragment( rRange.aStart.Col(), rRange.aStart.Row(),
rRange.aEnd.Col(), rRange.aEnd.Row(),
aMark ) )
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 89816cfe9042..7c07be1f45be 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -465,7 +465,7 @@ void ScUndoDeleteCells::DoChange( const bool bUndo )
aWorkRange.aEnd.SetCol(rDoc.MaxCol());
if ( eCmd==DelCellCmd::Rows || eCmd==DelCellCmd::CellsUp )
aWorkRange.aEnd.SetRow(rDoc.MaxRow());
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
aMarkData.SelectOneTable( aWorkRange.aStart.Tab() );
ScPatternAttr aPattern( rDoc.GetPool() );
aPattern.GetItemSet().Put( ScMergeFlagAttr() );
@@ -1083,7 +1083,7 @@ void ScUndoPaste::DoChange(bool bUndo)
ScRange& rDrawRange = aDrawRanges[i];
rDoc.ExtendMerge(rDrawRange, true); // only needed for single sheet (text/rtf etc.)
ScRangeList aRangeList(rDrawRange);
- ScMarkData aData(aRangeList);
+ ScMarkData aData(rDoc.MaxRow(), rDoc.MaxCol(), aRangeList);
if (bPaintAll)
{
rDrawRange.aStart.SetCol(0);
@@ -1408,7 +1408,7 @@ void ScUndoDragDrop::Redo()
of drawing undo actions. */
SCTAB nTab;
- ScMarkData aSourceMark;
+ ScMarkData aSourceMark(rDoc.MaxRow(), rDoc.MaxCol());
for (nTab=aSrcRange.aStart.Tab(); nTab<=aSrcRange.aEnd.Tab(); nTab++)
aSourceMark.SelectTable( nTab, true );
@@ -1427,7 +1427,7 @@ void ScUndoDragDrop::Redo()
PaintArea( aSrcPaintRange, nExtFlags );
}
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
for (nTab=aDestRange.aStart.Tab(); nTab<=aDestRange.aEnd.Tab(); nTab++)
aDestMark.SelectTable( nTab, true );
@@ -1917,7 +1917,7 @@ void ScUndoEnterMatrix::Redo()
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SelectOneTable( aBlockRange.aStart.Tab() );
aDestMark.SetMarkArea( aBlockRange );
@@ -2365,7 +2365,7 @@ void ScUndoBorder::Undo()
BeginUndo();
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
aMarkData.MarkFromRangeList(*xRanges, false);
xUndoDoc->CopyToDocument(aBlockRange, InsertDeleteFlags::ATTRIB, true, rDoc, &aMarkData);
pDocShell->PostPaint( aBlockRange, PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE );
@@ -2384,7 +2384,7 @@ void ScUndoBorder::Redo()
ScRange const & rRange = (*xRanges)[i];
SCTAB nTab = rRange.aStart.Tab();
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SetMarkArea( rRange );
aMark.SelectTable( nTab, true );
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index 215d7e20a3de..1459e4dd482d 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -859,7 +859,7 @@ void ScUndoAutoFormat::Redo()
sc::RowHeightContext aCxt(nPPTX, nPPTY, aZoomX, aZoomY, pVirtDev);
for (SCTAB nTab=nStartZ; nTab<=nEndZ; nTab++)
{
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SelectOneTable( nTab );
aDestMark.SetMarkArea( ScRange( nStartX, nStartY, nTab, nEndX, nEndY, nTab ) );
aDestMark.MarkToMulti();
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 0d53d2ad2bfa..34aba2fd2769 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1070,7 +1070,7 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r
rDoc.CopyToDocument(rRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc);
}
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SetMarkArea( rRange );
aMark.SelectTable( nTab, true );
@@ -1211,7 +1211,7 @@ static bool lcl_PutDataArray( ScDocShell& rDocShell, const ScRange& rRange,
if ( pUndoDoc )
{
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SelectOneTable( nTab );
rDocShell.GetUndoManager()->AddUndoAction(
std::make_unique<ScUndoPaste>(
@@ -1308,7 +1308,7 @@ static bool lcl_PutFormulaArray( ScDocShell& rDocShell, const ScRange& rRange,
if ( pUndoDoc )
{
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SelectOneTable( nTab );
rDocShell.GetUndoManager()->AddUndoAction(
std::make_unique<ScUndoPaste>( &rDocShell,
@@ -1522,7 +1522,7 @@ const ScMarkData* ScCellRangesBase::GetMarkData()
{
if (!pMarkData)
{
- pMarkData.reset( new ScMarkData(aRanges) );
+ pMarkData.reset( new ScMarkData(GetDocument()->MaxRow(), GetDocument()->MaxCol(), aRanges) );
}
return pMarkData.get();
}
@@ -2450,7 +2450,7 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
SvxBoxInfoItem aInner(ATTR_BORDER_INNER);
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SetMarkArea( rFirst );
aMark.SelectTable( rFirst.aStart.Tab(), true );
rDoc.GetSelectionFrame( aMark, aOuter, aInner );
@@ -3412,7 +3412,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryContentC
{
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
// select matching cells
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
@@ -3501,7 +3501,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryFormulaC
{
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
// select matching cells
for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i )
@@ -3555,7 +3555,7 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl(
size_t nRangeCount = aRanges.size();
size_t i;
ScDocument& rDoc = pDocShell->GetDocument();
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
SCCOLROW nCmpPos = bColumnDiff ? static_cast<SCCOLROW>(aCompare.Row) : static_cast<SCCOLROW>(aCompare.Column);
@@ -3685,7 +3685,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryPreceden
bFound = false;
// aMarkData uses aNewRanges, not aRanges, so GetMarkData can't be used
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
aMarkData.MarkFromRangeList( aNewRanges, false );
aMarkData.MarkToMulti(); // needed for IsAllMarked
@@ -3734,7 +3734,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryDependen
bFound = false;
// aMarkData uses aNewRanges, not aRanges, so GetMarkData can't be used
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
aMarkData.MarkFromRangeList( aNewRanges, false );
aMarkData.MarkToMulti(); // needed for IsAllMarked
@@ -4168,7 +4168,7 @@ void SAL_CALL ScCellRangesObj::removeRangeAddress( const table::CellRangeAddress
aNotSheetRanges.push_back( rRanges[ i ] );
}
}
- ScMarkData aMarkData;
+ ScMarkData aMarkData(GetDocument()->MaxRow(), GetDocument()->MaxCol());
aMarkData.MarkFromRangeList( aSheetRanges, false );
ScRange aRange(static_cast<SCCOL>(rRange.StartColumn),
static_cast<SCROW>(rRange.StartRow),
@@ -4321,7 +4321,7 @@ static bool lcl_FindRangeOrEntry( const ScNamedEntryArr_Impl& rNamedEntries,
if ( (nParse & ( ScRefFlags::VALID | ScRefFlags::TAB_3D ))
== ( ScRefFlags::VALID | ScRefFlags::TAB_3D ))
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(pDocSh->GetDocument().MaxRow(), pDocSh->GetDocument().MaxCol());
aMarkData.MarkFromRangeList( rRanges, false );
aMarkData.MarkToMulti(); // needed for IsAllMarked
if ( aMarkData.IsAllMarked( aCellRange ) )
@@ -4339,7 +4339,7 @@ static bool lcl_FindRangeOrEntry( const ScNamedEntryArr_Impl& rNamedEntries,
// test if named entry is contained in rRanges
const ScRange& rComp = rNamedEntry.GetRange();
- ScMarkData aMarkData;
+ ScMarkData aMarkData(pDocSh->GetDocument().MaxRow(), pDocSh->GetDocument().MaxCol());
aMarkData.MarkFromRangeList( rRanges, false );
aMarkData.MarkToMulti(); // needed for IsAllMarked
if ( aMarkData.IsAllMarked( rComp ) )
@@ -4388,7 +4388,7 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName )
}
if ( bValid )
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(GetDocument()->MaxRow(), GetDocument()->MaxCol());
aMarkData.MarkFromRangeList( rRanges, false );
for ( size_t i = 0, nDiffCount = aDiff.size(); i < nDiffCount; i++ )
@@ -4881,7 +4881,7 @@ void ScCellRangeObj::SetArrayFormula_Impl(const OUString& rFormula,
else
{
// empty string -> erase array formula
- ScMarkData aMark;
+ ScMarkData aMark(GetDocument()->MaxRow(), GetDocument()->MaxCol());
aMark.SetMarkArea( aRange );
aMark.SelectTable( aRange.aStart.Tab(), true );
pDocSh->GetDocFunc().DeleteContents( aMark, InsertDeleteFlags::CONTENTS, true, true );
@@ -4956,7 +4956,7 @@ void SAL_CALL ScCellRangeObj::setArrayTokens( const uno::Sequence<sheet::Formula
else
{
// empty sequence -> erase array formula
- ScMarkData aMark;
+ ScMarkData aMark(pDocSh->GetDocument().MaxRow(), pDocSh->GetDocument().MaxCol());
aMark.SetMarkArea( aRange );
aMark.SelectTable( aRange.aStart.Tab(), true );
pDocSh->GetDocFunc().DeleteContents( aMark, InsertDeleteFlags::CONTENTS, true, true );
@@ -7689,7 +7689,7 @@ void SAL_CALL ScTableSheetObj::addRanges( const uno::Sequence<table::CellRangeAd
if (rDoc.IsScenario(nTab))
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
aMarkData.SelectTable( nTab, true );
for (const table::CellRangeAddress& rRange : rScenRanges)
@@ -8732,7 +8732,7 @@ void ScCellsEnumeration::CheckPos_Impl()
{
if (!pMark)
{
- pMark.reset( new ScMarkData );
+ pMark.reset( new ScMarkData(rDoc.MaxRow(), rDoc.MaxCol()) );
pMark->MarkFromRangeList(aRanges, false);
pMark->MarkToMulti(); // needed for GetNextMarkedCell
}
@@ -8756,7 +8756,7 @@ void ScCellsEnumeration::Advance_Impl()
OSL_ENSURE(!bAtEnd,"too much Advance_Impl");
if (!pMark)
{
- pMark.reset( new ScMarkData );
+ pMark.reset( new ScMarkData(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol()) );
pMark->MarkFromRangeList( aRanges, false );
pMark->MarkToMulti(); // needed for GetNextMarkedCell
}
diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx
index 82cbe769fb34..6f18ed237c76 100644
--- a/sc/source/ui/unoobj/cursuno.cxx
+++ b/sc/source/ui/unoobj/cursuno.cxx
@@ -338,7 +338,7 @@ void SAL_CALL ScCellCursorObj::gotoNext()
aOneRange.PutInOrder();
ScAddress aCursor(aOneRange.aStart); // always use start of block
- ScMarkData aMark; // not used with bMarked=FALSE
+ ScMarkData aMark(GetDocument()->MaxRow(), GetDocument()->MaxCol()); // not used with bMarked=FALSE
SCCOL nNewX = aCursor.Col();
SCROW nNewY = aCursor.Row();
SCTAB nTab = aCursor.Tab();
@@ -360,7 +360,7 @@ void SAL_CALL ScCellCursorObj::gotoPrevious()
aOneRange.PutInOrder();
ScAddress aCursor(aOneRange.aStart); // always use start of block
- ScMarkData aMark; // not used with bMarked=FALSE
+ ScMarkData aMark(GetDocument()->MaxRow(), GetDocument()->MaxCol()); // not used with bMarked=FALSE
SCCOL nNewX = aCursor.Col();
SCROW nNewY = aCursor.Row();
SCTAB nTab = aCursor.Tab();
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 9b0ae9763001..b55803ab5104 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -1572,7 +1572,7 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection,
static_cast< sheet::XSpreadsheetDocument* >(this) );
}
- ScMarkData aMark;
+ ScMarkData aMark(GetDocument()->MaxRow(), GetDocument()->MaxCol());
ScPrintSelectionStatus aStatus;
OUString aPagesStr;
bool bRenderToGraphic = false;
@@ -1662,7 +1662,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
static_cast< sheet::XSpreadsheetDocument* >(this) );
}
- ScMarkData aMark;
+ ScMarkData aMark(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol());
ScPrintSelectionStatus aStatus;
OUString aPagesStr;
// #i115266# if FillRenderMarkData fails, keep nTotalPages at 0, but still handle getRenderer(0) below
@@ -1910,7 +1910,7 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec
static_cast< sheet::XSpreadsheetDocument* >(this) );
}
- ScMarkData aMark;
+ ScMarkData aMark(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol());
ScPrintSelectionStatus aStatus;
OUString aPagesStr;
bool bRenderToGraphic = false;
@@ -3086,7 +3086,7 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r
//! separate method with ScMarkData? Then change HasChangesListeners back.
if ( rOperation == "cell-change" && pDocShell )
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol());
aMarkData.MarkFromRangeList( rRanges, false );
ScDocument& rDoc = pDocShell->GetDocument();
SCTAB nTabCount = rDoc.GetTableCount();
@@ -4454,7 +4454,7 @@ void SAL_CALL ScAnnotationsObj::removeByIndex( sal_Int32 nIndex )
ScAddress aPos;
if ( GetAddressByIndex_Impl( nIndex, aPos ) )
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol());
aMarkData.SelectTable( aPos.Tab(), true );
aMarkData.SetMultiMarkArea( ScRange(aPos) );
@@ -4585,7 +4585,7 @@ void SAL_CALL ScScenariosObj::addNewByName( const OUString& aName,
SolarMutexGuard aGuard;
if ( pDocShell )
{
- ScMarkData aMarkData;
+ ScMarkData aMarkData(pDocShell->GetDocument().MaxRow(), pDocShell->GetDocument().MaxCol());
aMarkData.SelectTable( nTab, true );
for (const table::CellRangeAddress& rRange : aRanges)
diff --git a/sc/source/ui/unoobj/funcuno.cxx b/sc/source/ui/unoobj/funcuno.cxx
index 89680f3e7a28..128811bf1ae7 100644
--- a/sc/source/ui/unoobj/funcuno.cxx
+++ b/sc/source/ui/unoobj/funcuno.cxx
@@ -142,7 +142,7 @@ static bool lcl_CopyData( ScDocument* pSrcDoc, const ScRange& rSrcRange,
nDestTab ) );
ScDocumentUniquePtr pClipDoc(new ScDocument( SCDOCMODE_CLIP ));
- ScMarkData aSourceMark;
+ ScMarkData aSourceMark(pSrcDoc->MaxRow(), pSrcDoc->MaxCol());
aSourceMark.SelectOneTable( nSrcTab ); // for CopyToClip
aSourceMark.SetMarkArea( rSrcRange );
ScClipParam aClipParam(rSrcRange, false);
@@ -157,7 +157,7 @@ static bool lcl_CopyData( ScDocument* pSrcDoc, const ScRange& rSrcRange,
pClipDoc->ApplyPatternAreaTab( 0,0, pClipDoc->MaxCol(), pClipDoc->MaxRow(), nSrcTab, aPattern );
}
- ScMarkData aDestMark;
+ ScMarkData aDestMark(pDestDoc->MaxRow(), pDestDoc->MaxCol());
aDestMark.SelectOneTable( nDestTab );
aDestMark.SetMarkArea( aNewRange );
pDestDoc->CopyFromClip( aNewRange, aDestMark, InsertDeleteFlags::ALL & ~InsertDeleteFlags::FORMULA, nullptr, pClipDoc.get(), false );
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index e658059837aa..cbe375af50bf 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -5280,7 +5280,7 @@ ScVbaRange::setStyle( const uno::Any& _style )
uno::Reference< excel::XRange >
ScVbaRange::PreviousNext( bool bIsPrevious )
{
- ScMarkData markedRange;
+ ScMarkData markedRange(getScDocument().MaxRow(), getScDocument().MaxCol());
ScRange refRange;
RangeHelper thisRange( mxRange );
diff --git a/sc/source/ui/vba/vbaworksheets.cxx b/sc/source/ui/vba/vbaworksheets.cxx
index e6b3fbc146dc..d2c6a882658c 100644
--- a/sc/source/ui/vba/vbaworksheets.cxx
+++ b/sc/source/ui/vba/vbaworksheets.cxx
@@ -498,7 +498,8 @@ void ScVbaWorksheets::PrintPreview( const css::uno::Any& /*EnableChanges*/ )
{
ScPreviewShell* pPrvShell = static_cast< ScPreviewShell* >( pShell );
ScPreview* pPrvView = pPrvShell->GetPreview();
- ScMarkData aMarkData;
+ const ScDocument& rDoc = *pViewShell->GetViewData().GetDocument();
+ ScMarkData aMarkData(rDoc.MaxRow(), rDoc.MaxCol());
sal_Int32 nElems = getCount();
for ( sal_Int32 nItem = 1; nItem <= nElems; ++nItem )
{
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index f2fab305f9aa..44ef3d49c330 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2401,7 +2401,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
ScViewData* pData = GetViewData();
ScMarkData& rMark = pData->GetMarkData();
ScDocument* pDoc = pData->GetDocument();
- ScMarkData aNewMark;
+ ScMarkData aNewMark(pDoc->MaxRow(), pDoc->MaxCol());
ScRangeList aRangeList;
for (auto const& rTab : rMark.GetSelectedTabs())
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 0f72c2954a1b..c286b7b5d173 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5385,7 +5385,7 @@ bool ScGridWindow::HasScenarioButton( const Point& rPosPixel, ScRange& rScenRang
//! cache the Ranges in Table!!!!
- ScMarkData aMarks;
+ ScMarkData aMarks(pDoc->MaxRow(), pDoc->MaxCol());
for (SCTAB i=nTab+1; i<nTabCount && pDoc->IsScenario(i); i++)
pDoc->MarkScenario( i, nTab, aMarks, false, ScScenarioFlags::ShowFrame );
ScRangeList aRanges;
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index acaa81842a97..d0e530be77e8 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -198,7 +198,7 @@ static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, S
//! cache the ranges in table!!!!
- ScMarkData aMarks;
+ ScMarkData aMarks(pDoc->MaxRow(), pDoc->MaxCol());
for (SCTAB i=nTab+1; i<nTabCount && pDoc->IsScenario(i); i++)
pDoc->MarkScenario( i, nTab, aMarks, false, ScScenarioFlags::ShowFrame );
ScRangeListRef xRanges = new ScRangeList;
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 97dbaacfac2a..5cdb89ec4890 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -732,7 +732,7 @@ ScSplitPos ScViewDataTable::SanitizeWhichActive() const
ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh ) :
nPPTX(0.0),
nPPTY(0.0),
- mpMarkData(new ScMarkData),
+ mpMarkData(new ScMarkData(pDocSh->GetDocument().MaxRow(), pDocSh->GetDocument().MaxCol()) ),
pDocShell ( pDocSh ),
pDoc ( nullptr ),
pView ( pViewSh ),
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index cf1cd4656ed4..0778c2b5a710 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -142,7 +142,7 @@ void ScViewFunc::PasteRTF( SCCOL nStartCol, SCROW nStartRow,
rDoc.CopyToDocument( nStartCol,nStartRow,nTab, nStartCol,nEndRow,nTab, InsertDeleteFlags::ALL|InsertDeleteFlags::NOCAPTIONS, false, *pRedoDoc );
ScRange aMarkRange(nStartCol, nStartRow, nTab, nStartCol, nEndRow, nTab);
- ScMarkData aDestMark;
+ ScMarkData aDestMark(rDoc.MaxRow(), rDoc.MaxCol());
aDestMark.SetMarkArea( aMarkRange );
pDocSh->GetUndoManager()->AddUndoAction(
std::make_unique<ScUndoPaste>( pDocSh, aMarkRange, aDestMark,
diff --git a/sc/source/ui/view/viewfun5.cxx b/sc/source/ui/view/viewfun5.cxx
index 1cffceff6e57..cdac007fc8df 100644
--- a/sc/source/ui/view/viewfun5.cxx
+++ b/sc/source/ui/view/viewfun5.cxx
@@ -139,7 +139,7 @@ bool ScViewFunc::PasteDataFormat( SotClipboardFormatId nFormatId,
if (!rSrcDoc.HasTable(nSrcTab))
nSrcTab = 0;
- ScMarkData aSrcMark;
+ ScMarkData aSrcMark(rSrcDoc.MaxRow(), rSrcDoc.MaxCol());
aSrcMark.SelectOneTable( nSrcTab ); // for CopyToClip
ScDocumentUniquePtr pClipDoc(new ScDocument( SCDOCMODE_CLIP ));
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index 7ed93ac0b0b4..21d10fcd1726 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -213,7 +213,7 @@ void ScViewFunc::DoAutoAttributes( SCCOL nCol, SCROW nRow, SCTAB nTab,
if ( !pSource->GetItem(ATTR_MERGE).IsMerged() )
{
ScRange aRange( nCol, nRow, nTab, nCol, nRow, nTab );
- ScMarkData aMark;
+ ScMarkData aMark(rDoc.MaxRow(), rDoc.MaxCol());
aMark.SetMarkArea( aRange );
ScDocFunc &rFunc = GetViewData().GetDocFunc();
@@ -552,7 +552,7 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
const sal_uInt32 nFormat = pFormatter->GetStandardFormat( SvNumFormatType::NUMBER, nLang);
ScPatternAttr aPattern( pDoc->GetPool());
aPattern.GetItemSet().Put( SfxUInt32Item( ATTR_VALUE_FORMAT, nFormat));
- ScMarkData aMark;
+ ScMarkData aMark(pDoc->MaxRow(), pDoc->MaxCol());
aMark.SelectTable( i, true);
aMark.SetMarkArea( ScRange( aPos));
rFunc.ApplyAttributes( aMark, aPattern, false);