summaryrefslogtreecommitdiffstats
path: root/src/module
diff options
context:
space:
mode:
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();