summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/viewdata.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/viewdata.cxx')
-rw-r--r--sc/source/ui/view/viewdata.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index d2e5b461e9ed..b1b092d85fd3 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -903,9 +903,15 @@ void ScViewData::InsertTabs( SCTAB nTab, SCTAB nNewSheets )
void ScViewData::DeleteTab( SCTAB nTab )
{
+ assert(nTab < static_cast<SCTAB>(maTabData.size()));
delete maTabData.at(nTab);
-
maTabData.erase(maTabData.begin() + nTab);
+
+ if (static_cast<size_t>(nTabNo) >= maTabData.size())
+ {
+ EnsureTabDataSize(1);
+ nTabNo = maTabData.size() - 1;
+ }
UpdateCurrentTab();
mpMarkData->DeleteTab( nTab );
}
@@ -919,6 +925,11 @@ void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets )
}
maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets);
+ if (static_cast<size_t>(nTabNo) >= maTabData.size())
+ {
+ EnsureTabDataSize(1);
+ nTabNo = maTabData.size() - 1;
+ }
UpdateCurrentTab();
}