fix crash when setting an LV2 preset that refers to ports via incorrect names (from bazz)
git-svn-id: svn://localhost/ardour2/branches/3.0@11719 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
377f407a2f
commit
5aec73971a
@ -723,6 +723,8 @@ LV2Plugin::load_preset(PresetRecord r)
|
|||||||
{
|
{
|
||||||
Plugin::load_preset(r);
|
Plugin::load_preset(r);
|
||||||
|
|
||||||
|
std::map<std::string,uint32_t>::iterator it;
|
||||||
|
|
||||||
LilvNode* lv2_port = lilv_new_uri(_world.world, LILV_NS_LV2 "port");
|
LilvNode* lv2_port = lilv_new_uri(_world.world, LILV_NS_LV2 "port");
|
||||||
LilvNode* lv2_symbol = lilv_new_uri(_world.world, LILV_NS_LV2 "symbol");
|
LilvNode* lv2_symbol = lilv_new_uri(_world.world, LILV_NS_LV2 "symbol");
|
||||||
LilvNode* oldpset_value = lilv_new_uri(_world.world, NS_OLDPSET "value");
|
LilvNode* oldpset_value = lilv_new_uri(_world.world, NS_OLDPSET "value");
|
||||||
@ -738,8 +740,9 @@ LV2Plugin::load_preset(PresetRecord r)
|
|||||||
value = get_value(_world.world, port, oldpset_value);
|
value = get_value(_world.world, port, oldpset_value);
|
||||||
}
|
}
|
||||||
if (value && lilv_node_is_float(value)) {
|
if (value && lilv_node_is_float(value)) {
|
||||||
set_parameter(_port_indices[lilv_node_as_string(symbol)],
|
it = _port_indices.find(lilv_node_as_string(symbol));
|
||||||
lilv_node_as_float(value));
|
if (it != _port_indices.end())
|
||||||
|
set_parameter(it->second,lilv_node_as_float(value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lilv_nodes_free(ports);
|
lilv_nodes_free(ports);
|
||||||
|
Loading…
Reference in New Issue
Block a user