summaryrefslogtreecommitdiff
path: root/sc/source/core
diff options
context:
space:
mode:
authorParis Oplopoios <paris.oplopoios@collabora.com>2023-03-08 23:04:49 +0200
committerTomaž Vajngerl <quikee@gmail.com>2023-03-16 13:08:25 +0000
commit2135706397d36aa7ea24650b65859be0b6860a65 (patch)
tree4f153bd0b61561d98b8d5de29d45d8400ab2d7e7 /sc/source/core
parent67d353ff50712a036d04b1c0ffab68f2a21b5008 (diff)
tdf#154061 Make sure table column attributes size is correct
Resize maTableColumnAttributes to match the amount of columns, fixes crash upon undoing a column insertion on a table Change-Id: Iad4b8ac5c38d5d1065d6ef1267ce3f5d3b28afa8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148492 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sc/source/core')
-rw-r--r--sc/source/core/tool/dbdata.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx
index dc10d6a0503e..293bb20a4976 100644
--- a/sc/source/core/tool/dbdata.cxx
+++ b/sc/source/core/tool/dbdata.cxx
@@ -116,6 +116,7 @@ ScDBData::ScDBData( const ScDBData& rData ) :
bAutoFilter (rData.bAutoFilter),
bModified (rData.bModified),
maTableColumnNames (rData.maTableColumnNames),
+ maTableColumnAttributes(rData.maTableColumnAttributes),
mbTableColumnNamesDirty(rData.mbTableColumnNamesDirty),
nFilteredRowCount (rData.nFilteredRowCount)
{
@@ -150,6 +151,7 @@ ScDBData::ScDBData( const OUString& rName, const ScDBData& rData ) :
bAutoFilter (rData.bAutoFilter),
bModified (rData.bModified),
maTableColumnNames (rData.maTableColumnNames),
+ maTableColumnAttributes(rData.maTableColumnAttributes),
mbTableColumnNamesDirty (rData.mbTableColumnNamesDirty),
nFilteredRowCount (rData.nFilteredRowCount)
{
@@ -199,6 +201,7 @@ ScDBData& ScDBData::operator= (const ScDBData& rData)
else
{
maTableColumnNames = rData.maTableColumnNames;
+ maTableColumnAttributes = rData.maTableColumnAttributes;
mbTableColumnNamesDirty = rData.mbTableColumnNamesDirty;
}
@@ -577,6 +580,7 @@ void ScDBData::UpdateMoveTab(SCTAB nOldPos, SCTAB nNewPos)
aRange.aEnd.Row());
// Do not use SetTableColumnNames() because that resets mbTableColumnNamesDirty.
maTableColumnNames = aNames;
+ maTableColumnAttributes.resize(aNames.size());
mbTableColumnNamesDirty = bTableColumnNamesDirty;
}
@@ -620,6 +624,7 @@ bool ScDBData::UpdateReference(const ScDocument* pDoc, UpdateRefMode eUpdateRefM
MoveTo( theTab1, theCol1, theRow1, theCol2, theRow2 );
// Do not use SetTableColumnNames() because that resets mbTableColumnNamesDirty.
maTableColumnNames = aNames;
+ maTableColumnAttributes.resize(aNames.size());
mbTableColumnNamesDirty = bTableColumnNamesDirty;
}
@@ -721,7 +726,6 @@ void ScDBData::AdjustTableColumnAttributes( UpdateRefMode eUpdateRefMode, SCCOL
n += nDx;
aNewNames.resize(n);
aNewAttributes.resize(n);
- maTableColumnAttributes.resize(n);
// Copy head.
for (size_t i = 0; i < nHead; ++i)
{
@@ -876,6 +880,7 @@ void ScDBData::RefreshTableColumnNames( ScDocument* pDoc )
}
aNewNames.swap( maTableColumnNames);
+ maTableColumnAttributes.resize(maTableColumnNames.size());
mbTableColumnNamesDirty = false;
}