diff --git a/ApplicationLibCode/Commands/RicGridStatisticsDialog.cpp b/ApplicationLibCode/Commands/RicGridStatisticsDialog.cpp index 1b2fd74e18..b918f0eff2 100644 --- a/ApplicationLibCode/Commands/RicGridStatisticsDialog.cpp +++ b/ApplicationLibCode/Commands/RicGridStatisticsDialog.cpp @@ -178,10 +178,10 @@ void RicGridStatisticsDialog::setHistogramData( RimGridView* view ) { QVector histSamples; QVector aggrSamples; - double xStep = ( histogramData.max - histogramData.min ) / ( *histogramData.histogram ).size(); + double xStep = ( histogramData.max - histogramData.min ) / histogramData.histogram.size(); double xCurr = histogramData.min; double aggrValue = 0.0; - for ( size_t value : *histogramData.histogram ) + for ( size_t value : histogramData.histogram ) { double xNext = xCurr + xStep; histSamples.push_back( QwtIntervalSample( value, xCurr, xNext ) ); diff --git a/ApplicationLibCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp b/ApplicationLibCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp index ad9b3bb946..a9caf7b119 100644 --- a/ApplicationLibCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp +++ b/ApplicationLibCode/ProjectDataModel/Rim3dOverlayInfoConfig.cpp @@ -862,7 +862,7 @@ void Rim3dOverlayInfoConfig::updateEclipse3DInfo( RimEclipseView* eclipseView ) if ( isResultsInfoRelevant && histData.isHistogramVectorValid() ) { eclipseView->viewer()->showHistogram( true ); - eclipseView->viewer()->setHistogram( histData.min, histData.max, *histData.histogram ); + eclipseView->viewer()->setHistogram( histData.min, histData.max, histData.histogram ); eclipseView->viewer()->setHistogramPercentiles( histData.p10, histData.p90, histData.mean ); } } @@ -911,7 +911,7 @@ void Rim3dOverlayInfoConfig::updateGeoMech3DInfo( RimGeoMechView* geoMechView ) if ( isResultsInfoRelevant && histData.isHistogramVectorValid() ) { geoMechView->viewer()->showHistogram( true ); - geoMechView->viewer()->setHistogram( histData.min, histData.max, *histData.histogram ); + geoMechView->viewer()->setHistogram( histData.min, histData.max, histData.histogram ); geoMechView->viewer()->setHistogramPercentiles( histData.p10, histData.p90, histData.mean ); } } diff --git a/ApplicationLibCode/ProjectDataModel/RimHistogramCalculator.cpp b/ApplicationLibCode/ProjectDataModel/RimHistogramCalculator.cpp index b19692656b..61109447a4 100644 --- a/ApplicationLibCode/ProjectDataModel/RimHistogramCalculator.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimHistogramCalculator.cpp @@ -187,7 +187,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* fldResults->sumScalarValue( resAddr, timeStep, &histData.sum ); fldResults->mobileVolumeWeightedMean( resAddr, timeStep, &histData.weightedMean ); - histData.histogram = &( fldResults->scalarValuesHistogram( resAddr, timeStep ) ); + histData.histogram = fldResults->scalarValuesHistogram( resAddr, timeStep ); } else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS ) { @@ -201,7 +201,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* m_visibleCellStatistics->sumCellScalarValues( timeStep, histData.sum ); m_visibleCellStatistics->mobileVolumeWeightedMean( timeStep, histData.weightedMean ); - histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ) ); + histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ); } } } @@ -216,7 +216,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* cellResults->meanCellScalarValues( eclResAddr, histData.mean ); cellResults->sumCellScalarValues( eclResAddr, histData.sum ); cellResults->mobileVolumeWeightedMean( eclResAddr, histData.weightedMean ); - histData.histogram = &( cellResults->cellScalarValuesHistogram( eclResAddr ) ); + histData.histogram = cellResults->cellScalarValuesHistogram( eclResAddr ); } else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP ) { @@ -225,7 +225,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* cellResults->meanCellScalarValues( eclResAddr, timeStep, histData.mean ); cellResults->sumCellScalarValues( eclResAddr, timeStep, histData.sum ); cellResults->mobileVolumeWeightedMean( eclResAddr, timeStep, histData.weightedMean ); - histData.histogram = &( cellResults->cellScalarValuesHistogram( eclResAddr, timeStep ) ); + histData.histogram = cellResults->cellScalarValuesHistogram( eclResAddr, timeStep ); } } else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS ) @@ -241,7 +241,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* m_visibleCellStatistics->sumCellScalarValues( histData.sum ); m_visibleCellStatistics->mobileVolumeWeightedMean( histData.weightedMean ); - histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram() ); + histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram(); } else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP ) { @@ -251,7 +251,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView* m_visibleCellStatistics->sumCellScalarValues( timeStep, histData.sum ); m_visibleCellStatistics->mobileVolumeWeightedMean( timeStep, histData.weightedMean ); - histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ) ); + histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ); } } return histData; @@ -285,7 +285,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView* caseData->femPartResults()->p10p90ScalarValues( resAddress, &histData.p10, &histData.p90 ); caseData->femPartResults()->sumScalarValue( resAddress, &histData.sum ); - histData.histogram = &( caseData->femPartResults()->scalarValuesHistogram( resAddress ) ); + histData.histogram = caseData->femPartResults()->scalarValuesHistogram( resAddress ); } else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP ) { @@ -295,7 +295,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView* caseData->femPartResults()->p10p90ScalarValues( resAddress, timeStepIdx, &histData.p10, &histData.p90 ); caseData->femPartResults()->sumScalarValue( resAddress, timeStepIdx, &histData.sum ); - histData.histogram = &( caseData->femPartResults()->scalarValuesHistogram( resAddress, timeStepIdx ) ); + histData.histogram = caseData->femPartResults()->scalarValuesHistogram( resAddress, timeStepIdx ); } } else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS ) @@ -310,7 +310,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView* m_visibleCellStatistics->p10p90CellScalarValues( histData.p10, histData.p90 ); m_visibleCellStatistics->sumCellScalarValues( histData.sum ); - histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram() ); + histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram(); } else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP ) { @@ -320,7 +320,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView* m_visibleCellStatistics->p10p90CellScalarValues( timeStepIdx, histData.p10, histData.p90 ); m_visibleCellStatistics->sumCellScalarValues( timeStepIdx, histData.sum ); - histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStepIdx ) ); + histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStepIdx ); } } } diff --git a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp index bf72a79d28..099a6ab619 100644 --- a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp @@ -207,7 +207,7 @@ void RimStatisticsPlot::updatePlots() QBarSet* set0 = new QBarSet( m_plotWindowTitle ); double minValue = std::numeric_limits::max(); double maxValue = -std::numeric_limits::max(); - for ( double value : *histogramData.histogram ) + for ( double value : histogramData.histogram ) { *set0 << value; minValue = std::min( minValue, value ); diff --git a/ApplicationLibCode/ReservoirDataModel/RigEnsembleFractureStatisticsCalculator.cpp b/ApplicationLibCode/ReservoirDataModel/RigEnsembleFractureStatisticsCalculator.cpp index eada877417..e1b3efa994 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigEnsembleFractureStatisticsCalculator.cpp +++ b/ApplicationLibCode/ReservoirDataModel/RigEnsembleFractureStatisticsCalculator.cpp @@ -106,9 +106,8 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData( double mean; RigStatisticsMath::calculateStatisticsCurves( samples, &histogramData.p10, &p50, &histogramData.p90, &mean ); - // TODO: this leaks memory: api assume the the histogram is owned by someone else (which is kind-of-strange) - std::vector* histogram = new std::vector(); - RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, 20, histogram ); + std::vector histogram; + RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, 20, &histogram ); for ( auto s : samples ) histogramCalculator.addValue( s ); diff --git a/ApplicationLibCode/ReservoirDataModel/RigHistogramData.cpp b/ApplicationLibCode/ReservoirDataModel/RigHistogramData.cpp index dd96ce77e2..9917b8503f 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigHistogramData.cpp +++ b/ApplicationLibCode/ReservoirDataModel/RigHistogramData.cpp @@ -31,7 +31,6 @@ RigHistogramData::RigHistogramData() , mean( std::numeric_limits::infinity() ) , weightedMean( std::numeric_limits::infinity() ) , sum( 0.0 ) - , histogram( nullptr ) { } @@ -56,5 +55,5 @@ bool RigHistogramData::isValid( double parameter ) const //-------------------------------------------------------------------------------------------------- bool RigHistogramData::isHistogramVectorValid() const { - return histogram && histogram->size() > 0 && isMinMaxValid(); + return histogram.size() > 0 && isMinMaxValid(); } diff --git a/ApplicationLibCode/ReservoirDataModel/RigHistogramData.h b/ApplicationLibCode/ReservoirDataModel/RigHistogramData.h index f874af55e1..0f16349177 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigHistogramData.h +++ b/ApplicationLibCode/ReservoirDataModel/RigHistogramData.h @@ -29,14 +29,14 @@ class RigHistogramData public: RigHistogramData(); - double min; - double max; - double p10; - double p90; - double mean; - double sum; - double weightedMean; - const std::vector* histogram; + double min; + double max; + double p10; + double p90; + double mean; + double sum; + double weightedMean; + std::vector histogram; bool isMinMaxValid() const; bool isHistogramVectorValid() const;