Check for valid pointer before accessing cell result data

p4#: 21359
This commit is contained in:
Magne Sjaastad 2013-04-22 13:25:32 +02:00
parent ea45e6f072
commit d825b0654c
2 changed files with 9 additions and 7 deletions

View File

@ -272,7 +272,7 @@ void RimReservoirView::updateViewerWidgetWindowTitle()
void RimReservoirView::clampCurrentTimestep() void RimReservoirView::clampCurrentTimestep()
{ {
// Clamp the current timestep to actual possibilities // Clamp the current timestep to actual possibilities
if (this->currentGridCellResults()->cellResults()) if (this->currentGridCellResults() && this->currentGridCellResults()->cellResults())
{ {
if (m_currentTimeStep() >= static_cast<int>(this->currentGridCellResults()->cellResults()->maxTimeStepCount())) if (m_currentTimeStep() >= static_cast<int>(this->currentGridCellResults()->cellResults()->maxTimeStepCount()))
{ {

View File

@ -166,9 +166,9 @@ bool RimResultDefinition::hasResult() const
{ {
if (m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T) return true; if (m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T) return true;
const RigCaseCellResultsData* gridCellResults = m_reservoirView->currentGridCellResults()->cellResults(); if (m_reservoirView->currentGridCellResults() && m_reservoirView->currentGridCellResults()->cellResults())
if (gridCellResults)
{ {
const RigCaseCellResultsData* gridCellResults = m_reservoirView->currentGridCellResults()->cellResults();
m_gridScalarResultIndex = gridCellResults->findScalarResultIndex(resultType(), resultVariable()); m_gridScalarResultIndex = gridCellResults->findScalarResultIndex(resultType(), resultVariable());
return m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T; return m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T;
} }
@ -182,8 +182,6 @@ bool RimResultDefinition::hasResult() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RimResultDefinition::hasDynamicResult() const bool RimResultDefinition::hasDynamicResult() const
{ {
const RigCaseCellResultsData* gridCellResults = m_reservoirView->currentGridCellResults()->cellResults();
if (hasResult()) if (hasResult())
{ {
if (resultType() == RimDefines::DYNAMIC_NATIVE) if (resultType() == RimDefines::DYNAMIC_NATIVE)
@ -191,11 +189,15 @@ bool RimResultDefinition::hasDynamicResult() const
return true; return true;
} }
if (m_reservoirView->currentGridCellResults() && m_reservoirView->currentGridCellResults()->cellResults())
{
const RigCaseCellResultsData* gridCellResults = m_reservoirView->currentGridCellResults()->cellResults();
if (gridCellResults->timeStepCount(m_gridScalarResultIndex) > 1 ) if (gridCellResults->timeStepCount(m_gridScalarResultIndex) > 1 )
{ {
return true; return true;
} }
} }
}
return false; return false;
} }