summaryrefslogtreecommitdiff
path: root/gtk2_ardour/luainstance.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-25 17:38:59 +0200
committerRobin Gareus <robin@gareus.org>2016-07-25 17:38:59 +0200
commit822810b88fd13d1764b5f686baa8edb3e27e95fc (patch)
treed5b471d92d628079cbf29375d9ad767ef3286880 /gtk2_ardour/luainstance.cc
parenteec294a97edce69ca71c972867ab708d5dd5625d (diff)
the endless quest to plug memory leaks -- episode 379
Diffstat (limited to 'gtk2_ardour/luainstance.cc')
-rw-r--r--gtk2_ardour/luainstance.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc
index 7c4898056f..c813eeea63 100644
--- a/gtk2_ardour/luainstance.cc
+++ b/gtk2_ardour/luainstance.cc
@@ -1646,11 +1646,13 @@ LuaCallback::set_session (ARDOUR::Session *s)
{
SessionHandlePtr::set_session (s);
- if (_session) {
- lua_State* L = lua.getState();
- LuaBindings::set_session (L, _session);
+ if (!_session) {
+ return;
}
+ lua_State* L = lua.getState();
+ LuaBindings::set_session (L, _session);
+
reconnect();
}
@@ -1664,6 +1666,10 @@ LuaCallback::session_going_away ()
_session = 0;
drop_callback (); /* EMIT SIGNAL */
+
+ lua_State* L = lua.getState();
+ LuaBindings::set_session (L, 0);
+ lua.do_command ("collectgarbage();");
}
void