diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/PatchImpl.cpp | 17 | ||||
-rw-r--r-- | src/server/PatchImpl.hpp | 19 |
2 files changed, 17 insertions, 19 deletions
diff --git a/src/server/PatchImpl.cpp b/src/server/PatchImpl.cpp index de1fe43f..95bb2132 100644 --- a/src/server/PatchImpl.cpp +++ b/src/server/PatchImpl.cpp @@ -424,6 +424,23 @@ PatchImpl::build_ports_array() const return result; } +static inline void +compile_recursive(NodeImpl* n, CompiledPatch* output) +{ + if (n == NULL || n->traversed()) + return; + + n->traversed(true); + assert(output != NULL); + + for (std::list<NodeImpl*>::iterator i = n->providers().begin(); + i != n->providers().end(); ++i) + if (!(*i)->traversed()) + compile_recursive(*i, output); + + output->push_back(CompiledNode(n, n->providers().size(), n->dependants())); +} + /** Find the process order for this Patch. * * The process order is a flat list that the patch will execute in order diff --git a/src/server/PatchImpl.hpp b/src/server/PatchImpl.hpp index c3791712..0a8d5547 100644 --- a/src/server/PatchImpl.hpp +++ b/src/server/PatchImpl.hpp @@ -158,7 +158,6 @@ public: Engine& engine() { return _engine; } private: - inline void compile_recursive(NodeImpl* n, CompiledPatch* output) const; void process_parallel(ProcessContext& context); void process_single(ProcessContext& context); @@ -173,24 +172,6 @@ private: bool _process; }; -/** Private helper for compile */ -inline void -PatchImpl::compile_recursive(NodeImpl* n, CompiledPatch* output) const -{ - if (n == NULL || n->traversed()) - return; - - n->traversed(true); - assert(output != NULL); - - for (std::list<NodeImpl*>::iterator i = n->providers().begin(); - i != n->providers().end(); ++i) - if (!(*i)->traversed()) - compile_recursive(*i, output); - - output->push_back(CompiledNode(n, n->providers().size(), n->dependants())); -} - } // namespace Server } // namespace Ingen |