diff --git a/src/pe/statistics/BodyStatistics.cpp b/src/pe/statistics/BodyStatistics.cpp index a8f41928e671a923f5a4703b874b784dab0ca007..e76910eff77b6ec92b0bb35b9e0c6414c1895a96 100644 --- a/src/pe/statistics/BodyStatistics.cpp +++ b/src/pe/statistics/BodyStatistics.cpp @@ -42,7 +42,7 @@ void BodyStatistics::operator()() velocitySample_.clear(); massSample_.clear(); - for( auto blockIt = blockStorage_.begin(); blockIt != blockStorage_.end(); ++blockIt ) + for( auto blockIt = blockStorage_->begin(); blockIt != blockStorage_->end(); ++blockIt ) { auto storage = blockIt->getData< pe::Storage >( bodyStorageID_ ); const pe::BodyStorage & localStorage = (*storage)[0]; diff --git a/src/pe/statistics/BodyStatistics.h b/src/pe/statistics/BodyStatistics.h index 0c4763937009d61af346a45dcf141c22e1a2be21..dacbf9585bb85dedda918cc2b058856e008f3f1c 100644 --- a/src/pe/statistics/BodyStatistics.h +++ b/src/pe/statistics/BodyStatistics.h @@ -36,7 +36,7 @@ class BodyStatistics { public: - BodyStatistics( const BlockStorage & blockStorage, const BlockDataID & bodyStorageID ) + BodyStatistics( const shared_ptr<BlockStorage>& blockStorage, const BlockDataID & bodyStorageID ) : blockStorage_( blockStorage ), bodyStorageID_( bodyStorageID ) { } @@ -52,8 +52,8 @@ public: real_t totalMass() const { return massSample_.sum(); } private: - const BlockStorage & blockStorage_; - BlockDataID bodyStorageID_; + const shared_ptr<BlockStorage> blockStorage_; + const BlockDataID bodyStorageID_; math::Sample localBodiesBlockSample_, shadowBodiesBlockSample_; math::Sample localBodiesProcessSample_, shadowBodiesProcessSample_;