diff options
Diffstat (limited to 'src/engine/Machine.cpp')
-rw-r--r-- | src/engine/Machine.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/engine/Machine.cpp b/src/engine/Machine.cpp index 7a99b58..44e8446 100644 --- a/src/engine/Machine.cpp +++ b/src/engine/Machine.cpp @@ -59,6 +59,9 @@ Machine::set_sink(SharedPtr<Raul::MIDISink> sink) SharedPtr<Node> Machine::random_node() { + if (_nodes.empty()) + return SharedPtr<Node>(); + size_t i = rand() % _nodes.size(); // FIXME: O(n) worst case :( @@ -79,7 +82,7 @@ Machine::random_edge() for (size_t i = 0; i < _nodes.size() && tail->edges().empty(); ++i) tail = random_node(); - return tail->random_edge(); + return tail ? tail->random_edge() : SharedPtr<Edge>(); } |