summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lv2_plugin_ui.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-05-24 02:50:36 +0000
committerDavid Robillard <d@drobilla.net>2012-05-24 02:50:36 +0000
commit17406258ae553167350c43d0fdc11370678754af (patch)
tree3bf47a5974d72ec82f1d138cde5cb49d7f4ddabf /gtk2_ardour/lv2_plugin_ui.cc
parent72bccc40e77433152ae06b89c306215daaef1eaa (diff)
Gracefully handle LV2 UIs that fail to return a widget.
git-svn-id: svn://localhost/ardour2/branches/3.0@12416 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/lv2_plugin_ui.cc')
-rw-r--r--gtk2_ardour/lv2_plugin_ui.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc
index ec1f1323d5..ab3fe1b39d 100644
--- a/gtk2_ardour/lv2_plugin_ui.cc
+++ b/gtk2_ardour/lv2_plugin_ui.cc
@@ -21,6 +21,7 @@
#include "ardour/plugin_manager.h"
#include "ardour/processor.h"
#include "ardour/session.h"
+#include "pbd/error.h"
#include "ardour_ui.h"
#include "gui_thread.h"
@@ -31,6 +32,8 @@
#include <lilv/lilv.h>
#include <suil/suil.h>
+#include "i18n.h"
+
using namespace ARDOUR;
using namespace Gtk;
using namespace PBD;
@@ -272,6 +275,12 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title)
pack_start(*_ardour_buttons_box, false, false);
GtkWidget* c_widget = (GtkWidget*)GET_WIDGET(_inst);
+ if (!c_widget) {
+ error << _("failed to get LV2 UI widget") << endmsg;
+ suil_instance_free((SuilInstance*)_inst);
+ _inst = NULL;
+ return;
+ }
_gui_widget = Gtk::manage(Glib::wrap(c_widget));
_gui_widget->show_all();
pack_start(*_gui_widget, true, true);