diff --git a/src/emulator/serialization.hpp b/src/emulator/serialization.hpp index c4e38e8c..0cb844cb 100644 --- a/src/emulator/serialization.hpp +++ b/src/emulator/serialization.hpp @@ -285,19 +285,21 @@ namespace utils { return {}; } - - const auto factory = this->factories_.find(std::type_index(typeid(T))); - if (factory == this->factories_.end()) + else { - throw std::runtime_error( - "Object construction failed. Missing factory for type: " + std::string(typeid(T).name())); + const auto factory = this->factories_.find(std::type_index(typeid(T))); + if (factory == this->factories_.end()) + { + throw std::runtime_error( + "Object construction failed. Missing factory for type: " + std::string(typeid(T).name())); + } + + auto* object = static_cast(factory->second()); + auto obj = std::move(*object); + delete object; + + return obj; } - - auto* object = static_cast(factory->second()); - auto obj = std::move(*object); - delete object; - - return obj; } };