summaryrefslogtreecommitdiffstats
path: root/src/server/NodeFactory.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-12 04:53:15 +0000
committerDavid Robillard <d@drobilla.net>2012-08-12 04:53:15 +0000
commite49cb96073f514edbe1b7a9854b49c47af35463c (patch)
treea20d32b572f8c28cba950ba53e9d0c595cf0b6c7 /src/server/NodeFactory.cpp
parentf1440f1247d71a4867a50eede068730743eb8e09 (diff)
downloadingen-e49cb96073f514edbe1b7a9854b49c47af35463c.tar.gz
ingen-e49cb96073f514edbe1b7a9854b49c47af35463c.tar.bz2
ingen-e49cb96073f514edbe1b7a9854b49c47af35463c.zip
Fix memory leaks.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4667 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/NodeFactory.cpp')
-rw-r--r--src/server/NodeFactory.cpp20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/server/NodeFactory.cpp b/src/server/NodeFactory.cpp
index 616a1b35..1544b98b 100644
--- a/src/server/NodeFactory.cpp
+++ b/src/server/NodeFactory.cpp
@@ -57,9 +57,11 @@ NodeFactory::~NodeFactory()
const NodeFactory::Plugins&
NodeFactory::plugins()
{
+ ThreadManager::assert_thread(THREAD_PRE_PROCESS);
if (!_has_loaded) {
// TODO: Plugin list refreshing
- load_plugins();
+ load_lv2_plugins();
+ _has_loaded = true;
}
return _plugins;
}
@@ -73,22 +75,6 @@ NodeFactory::plugin(const Raul::URI& uri)
}
void
-NodeFactory::load_plugins()
-{
- ThreadManager::assert_thread(THREAD_PRE_PROCESS);
-
- // Only load if we havn't already, so every client connecting doesn't cause
- // this (expensive!) stuff to happen. Not the best solution - would be nice
- // if clients could refresh plugins list for whatever reason :/
- if (!_has_loaded) {
- _plugins.clear();
- load_internal_plugins();
- load_lv2_plugins();
- _has_loaded = true;
- }
-}
-
-void
NodeFactory::load_internal_plugins()
{
Ingen::URIs& uris = _world->uris();