diff options
author | David Robillard <d@drobilla.net> | 2011-04-13 01:44:46 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-04-13 01:44:46 +0000 |
commit | 852232ad279b1436d3fd075a745c262334c172f8 (patch) | |
tree | eb31bf5e17cde1c1134d8147e7d844949e564c7e /libs/ardour/lv2_plugin.cc | |
parent | 036174daf16b565b9d963a86cc5cca853ead1fa5 (diff) |
Tolerate LV2 plugins that call persist/file state functions early.
git-svn-id: svn://localhost/ardour2/branches/3.0@9343 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index f3e30cb786..9978cec1dd 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -428,7 +428,9 @@ LV2Plugin::lv2_files_abstract_path(LV2_Files_Host_Data host_data, const char* absolute_path) { LV2Plugin* me = (LV2Plugin*)host_data; - assert(me->_insert_id != PBD::ID("0")); + if (me->_insert_id == PBD::ID("0")) { + return g_strdup(absolute_path); + } const std::string state_dir = Glib::build_filename(me->_session.plugins_dir(), me->_insert_id.to_s()); @@ -452,7 +454,9 @@ LV2Plugin::lv2_files_absolute_path(LV2_Files_Host_Data host_data, const char* abstract_path) { LV2Plugin* me = (LV2Plugin*)host_data; - assert(me->_insert_id != PBD::ID("0")); + if (me->_insert_id == PBD::ID("0")) { + return g_strdup(abstract_path); + } char* ret = NULL; if (g_path_is_absolute(abstract_path)) { @@ -477,7 +481,9 @@ LV2Plugin::lv2_files_new_file_path(LV2_Files_Host_Data host_data, const char* relative_path) { LV2Plugin* me = (LV2Plugin*)host_data; - assert(me->_insert_id != PBD::ID("0")); + if (me->_insert_id == PBD::ID("0")) { + return g_strdup(relative_path); + } const std::string state_dir = Glib::build_filename(me->_session.plugins_dir(), me->_insert_id.to_s()); |