diff --git a/src/storm/models/sparse/NondeterministicModel.cpp b/src/storm/models/sparse/NondeterministicModel.cpp index 5b5aebe89..32839a630 100644 --- a/src/storm/models/sparse/NondeterministicModel.cpp +++ b/src/storm/models/sparse/NondeterministicModel.cpp @@ -51,19 +51,21 @@ namespace storm { template std::shared_ptr> NondeterministicModel::applyScheduler(storm::storage::Scheduler const& scheduler, bool dropUnreachableStates) { - boost::optional> memoryProduct; if (scheduler.isMemorylessScheduler()) { - storm::storage::MemoryStructure memStruct = storm::storage::MemoryStructureBuilder::buildTrivialMemoryStructure(*this); - memoryProduct = memStruct.product(*this); + auto memoryProduct = storm::storage::MemoryStructureBuilder::buildTrivialMemoryStructure(*this).product(*this); + if (!dropUnreachableStates) { + memoryProduct.setBuildFullProduct(); + } + return memoryProduct.build(scheduler); } else { boost::optional const& memStruct = scheduler.getMemoryStructure(); STORM_LOG_ASSERT(memStruct, "Memoryless scheduler without memory structure."); - memoryProduct = memStruct->product(*this); - } - if (!dropUnreachableStates) { - memoryProduct->setBuildFullProduct(); + auto memoryProduct = memStruct->product(*this); + if (!dropUnreachableStates) { + memoryProduct.setBuildFullProduct(); + } + return memoryProduct.build(scheduler); } - return memoryProduct->build(scheduler); } template