summaryrefslogtreecommitdiffstats
path: root/src/server/ingen_lv2.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-17 06:47:24 +0000
committerDavid Robillard <d@drobilla.net>2014-11-17 06:47:24 +0000
commitb9e61de6668c6450d7b28040519ec2cb3b1ad87f (patch)
tree8f713df92343d28ae3676c8dba9431677069334f /src/server/ingen_lv2.cpp
parent8d34a6da879f0f8c39dfd4adfa616301fb655f18 (diff)
downloadingen-b9e61de6668c6450d7b28040519ec2cb3b1ad87f.tar.gz
ingen-b9e61de6668c6450d7b28040519ec2cb3b1ad87f.tar.bz2
ingen-b9e61de6668c6450d7b28040519ec2cb3b1ad87f.zip
Fix a few minor/unlikely memory errors.
Handle Glade widget loading failure more gracefully. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5486 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/ingen_lv2.cpp')
-rw-r--r--src/server/ingen_lv2.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/server/ingen_lv2.cpp b/src/server/ingen_lv2.cpp
index e73cc4ee..70642298 100644
--- a/src/server/ingen_lv2.cpp
+++ b/src/server/ingen_lv2.cpp
@@ -28,6 +28,7 @@
#include "lv2/lv2plug.in/ns/ext/atom/util.h"
#include "lv2/lv2plug.in/ns/ext/buf-size/buf-size.h"
#include "lv2/lv2plug.in/ns/ext/log/log.h"
+#include "lv2/lv2plug.in/ns/ext/log/logger.h"
#include "lv2/lv2plug.in/ns/ext/options/options.h"
#include "lv2/lv2plug.in/ns/ext/state/state.h"
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
@@ -501,6 +502,17 @@ ingen_instantiate(const LV2_Descriptor* descriptor,
}
}
+ LV2_Log_Logger logger;
+ lv2_log_logger_init(&logger, map, log);
+
+ if (!map) {
+ lv2_log_error(&logger, "host did not provide URI map feature\n");
+ return NULL;
+ } else if (!unmap) {
+ lv2_log_error(&logger, "host did not provide URI unmap feature\n");
+ return NULL;
+ }
+
if (!Glib::thread_supported()) {
Glib::thread_init();
}
@@ -518,16 +530,7 @@ ingen_instantiate(const LV2_Descriptor* descriptor,
}
if (!graph) {
- const std::string msg((fmt("Could not find graph %1%\n")
- % descriptor->URI).str());
- if (log) {
- log->printf(log->handle,
- map->map(map->handle, LV2_LOG__Error),
- msg.c_str(),
- NULL);
- } else {
- std::cerr << msg.c_str() << std::endl;
- }
+ lv2_log_error(&logger, "could not find graph <%s>\n", descriptor->URI);
return NULL;
}