diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-25 17:38:59 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-25 17:38:59 +0200 |
commit | 822810b88fd13d1764b5f686baa8edb3e27e95fc (patch) | |
tree | d5b471d92d628079cbf29375d9ad767ef3286880 /gtk2_ardour/luainstance.cc | |
parent | eec294a97edce69ca71c972867ab708d5dd5625d (diff) |
the endless quest to plug memory leaks -- episode 379
Diffstat (limited to 'gtk2_ardour/luainstance.cc')
-rw-r--r-- | gtk2_ardour/luainstance.cc | 12 |
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 |