diff options
author | David Robillard <d@drobilla.net> | 2010-04-02 02:38:42 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-04-02 02:38:42 +0000 |
commit | 5fcc724a4bcd9a8111a0a6d483e3d6dcbe97a2d5 (patch) | |
tree | 1c3c404e825b7703b34bf965c4e1b87184879bb9 /src/module | |
parent | bf6140f75321990ba867e9085a7d079ec35a1979 (diff) | |
download | ingen-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.cpp | 5 |
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(); |