Deck uses automatic memory
The deck no longer exposes shared_ptrs, but uses automatically managed memory, meaning ownership of DeckKeywords are now obvious and clear. shared_ptr in the interface has been replaced by references.
This commit is contained in:
@@ -26,8 +26,8 @@
|
||||
|
||||
namespace Opm {
|
||||
|
||||
SCHEDULESection::SCHEDULESection( std::shared_ptr< const Deck > deck) :
|
||||
Section(deck, "SCHEDULE"), unit_system( deck->getActiveUnitSystem() )
|
||||
SCHEDULESection::SCHEDULESection( const Deck& deck ) :
|
||||
Section(deck, "SCHEDULE"), unit_system( deck.getActiveUnitSystem() )
|
||||
{
|
||||
populateDeckTimeSteps();
|
||||
}
|
||||
@@ -45,11 +45,10 @@ namespace Opm {
|
||||
void SCHEDULESection::populateDeckTimeSteps() {
|
||||
DeckTimeStepPtr currentTimeStep = std::make_shared<DeckTimeStep>();
|
||||
|
||||
for (auto iter = begin(); iter != end(); ++iter) { //Loop keywords in schedule section
|
||||
auto keyword = *iter;
|
||||
if (keyword->name() == "TSTEP") {
|
||||
DeckItemPtr items = keyword->getDataRecord()->getDataItem();
|
||||
for (size_t item_iter = 0; item_iter < items->size(); ++item_iter) {
|
||||
for( const auto& keyword : *this ) {
|
||||
if (keyword.name() == "TSTEP") {
|
||||
const auto& items = keyword.getDataRecord().getDataItem();
|
||||
for (size_t item_iter = 0; item_iter < items.size(); ++item_iter) {
|
||||
m_decktimesteps.push_back(currentTimeStep);
|
||||
currentTimeStep = std::make_shared<DeckTimeStep>();
|
||||
}
|
||||
@@ -66,7 +65,7 @@ namespace Opm {
|
||||
m_decktimesteps.push_back(currentTimeStep);
|
||||
}
|
||||
|
||||
std::shared_ptr< UnitSystem > SCHEDULESection::getActiveUnitSystem() const {
|
||||
const UnitSystem& SCHEDULESection::getActiveUnitSystem() const {
|
||||
return this->unit_system;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user