Fixed crash in regressiontest of statistics case

Destructor chain deleting view fired off getting all cases, which
accessed case during its destruction.
This commit is contained in:
Jacob Støren 2015-05-18 15:23:51 +02:00
parent 23fcd78093
commit 3c8bac9f2a
2 changed files with 11 additions and 5 deletions

View File

@ -393,14 +393,19 @@ void RimProject::allCases(std::vector<RimCase*>& cases)
RimIdenticalGridCaseGroup* cg = analysisModels->caseGroups[cgIdx];
if (cg == NULL) continue;
for (size_t caseIdx = 0; caseIdx < cg->statisticsCaseCollection()->reservoirs.size(); caseIdx++)
if (cg->statisticsCaseCollection())
{
cases.push_back(cg->statisticsCaseCollection()->reservoirs[caseIdx]);
for (size_t caseIdx = 0; caseIdx < cg->statisticsCaseCollection()->reservoirs.size(); caseIdx++)
{
cases.push_back(cg->statisticsCaseCollection()->reservoirs[caseIdx]);
}
}
for (size_t caseIdx = 0; caseIdx < cg->caseCollection()->reservoirs.size(); caseIdx++)
if (cg->caseCollection())
{
cases.push_back(cg->caseCollection()->reservoirs[caseIdx]);
for (size_t caseIdx = 0; caseIdx < cg->caseCollection()->reservoirs.size(); caseIdx++)
{
cases.push_back(cg->caseCollection()->reservoirs[caseIdx]);
}
}
}
}

View File

@ -1327,6 +1327,7 @@ void RiuMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
{
RimProject * proj = RiaApplication::instance()->project();
if (!proj) return;
if (!subWindow) return;
// Iterate all cases in each oil field
std::vector<RimCase*> allCases;