summaryrefslogtreecommitdiffstats
path: root/src/module
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-04-02 02:38:42 +0000
committerDavid Robillard <d@drobilla.net>2010-04-02 02:38:42 +0000
commit5fcc724a4bcd9a8111a0a6d483e3d6dcbe97a2d5 (patch)
tree1c3c404e825b7703b34bf965c4e1b87184879bb9 /src/module
parentbf6140f75321990ba867e9085a7d079ec35a1979 (diff)
downloadingen-5fcc724a4bcd9a8111a0a6d483e3d6dcbe97a2d5.tar.gz
ingen-5fcc724a4bcd9a8111a0a6d483e3d6dcbe97a2d5.tar.bz2
ingen-5fcc724a4bcd9a8111a0a6d483e3d6dcbe97a2d5.zip
Fix crashes on exit.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2550 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/module')
-rw-r--r--src/module/World.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/module/World.cpp b/src/module/World.cpp
index 727e2dc8..bfdcb7e8 100644
--- a/src/module/World.cpp
+++ b/src/module/World.cpp
@@ -77,6 +77,9 @@ load_module(const string& name)
Shared::module_path(name),
Glib::MODULE_BIND_LAZY);
+ // FIXME: SEGV on exit without this
+ module->make_resident();
+
if (*module) {
LOG(info) << "Loaded `" << name << "' from " << INGEN_MODULE_DIR << endl;
return SharedPtr<Glib::Module>(module);
@@ -129,6 +132,8 @@ struct WorldImpl : public boost::noncopyable {
virtual ~WorldImpl()
{
+ local_engine.reset();
+
modules.clear();
interface_factories.clear();
script_runners.clear();