diff options
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index e6b3c2d56e..f24aa653bb 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -1095,10 +1095,12 @@ LV2Plugin::do_save_preset(string name) lilv_state_free(state); std::string uri = Glib::filename_to_uri(Glib::build_filename(bundle, file_name)); - LilvNode *node = lilv_new_uri(_world.world, uri.c_str()); - lilv_world_load_bundle(_world.world, node); - lilv_world_load_resource(_world.world, node); - lilv_node_free(node); + LilvNode *node_bundle = lilv_new_uri(_world.world, Glib::filename_to_uri(Glib::build_filename(bundle, "/")).c_str()); + LilvNode *node_preset = lilv_new_uri(_world.world, uri.c_str()); + lilv_world_load_bundle(_world.world, node_bundle); + lilv_world_load_resource(_world.world, node_preset); + lilv_node_free(node_bundle); + lilv_node_free(node_preset); return uri; } |