diff options
author | Carl Hetherington <carl@carlh.net> | 2012-02-27 15:21:29 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-02-27 15:21:29 +0000 |
commit | af7494ceb243d68e900c3c6464ec1038a2921f32 (patch) | |
tree | f36b42640ee2f7e7d4fb03336745d107d22b6ee9 /libs/ardour | |
parent | bd2e28aaacaf75448324cdd139d2062ce595d2c1 (diff) |
Slightly tweaked patch from colinf to avoid crashes on
out-of-range LADSPA port indices (#4700).
git-svn-id: svn://localhost/ardour2/branches/3.0@11528 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/ladspa_plugin.h | 2 | ||||
-rw-r--r-- | libs/ardour/ladspa_plugin.cc | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 0dd7f9efac..6853a1dc36 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -113,7 +113,7 @@ class LadspaPlugin : public ARDOUR::Plugin LADSPA_Properties properties() const { return _descriptor->Properties; } uint32_t index() const { return _index; } const char * copyright() const { return _descriptor->Copyright; } - LADSPA_PortDescriptor port_descriptor(uint32_t i) const { return _descriptor->PortDescriptors[i]; } + LADSPA_PortDescriptor port_descriptor(uint32_t i) const; const LADSPA_PortRangeHint* port_range_hints() const { return _descriptor->PortRangeHints; } const char * const * port_names() const { return _descriptor->PortNames; } diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index b9400dd8d8..3a25eab384 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -916,3 +916,16 @@ LadspaPlugin::do_save_preset (string name) return uri; } +LADSPA_PortDescriptor +LadspaPlugin::port_descriptor (uint32_t i) const +{ + if (i < _descriptor->PortCount) { + return _descriptor->PortDescriptors[i]; + } + + warning << "LADSPA plugin port index " << i << " out of range." << endmsg; + return 0; +} + + + |