aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jalv.c7
-rw-r--r--src/jalv_internal.h1
2 files changed, 5 insertions, 3 deletions
diff --git a/src/jalv.c b/src/jalv.c
index fbbd95e..042f7bc 100644
--- a/src/jalv.c
+++ b/src/jalv.c
@@ -770,9 +770,9 @@ main(int argc, char** argv)
const LilvNode* ui_type = NULL;
host.ui = NULL;
if (native_ui_type) {
- LilvUIs* uis = lilv_plugin_get_uis(host.plugin); // FIXME: leak
- LILV_FOREACH(uis, u, uis) {
- const LilvUI* this_ui = lilv_uis_get(uis, u);
+ host.uis = lilv_plugin_get_uis(host.plugin);
+ LILV_FOREACH(uis, u, host.uis) {
+ const LilvUI* this_ui = lilv_uis_get(host.uis, u);
if (lilv_ui_is_supported(
this_ui, suil_ui_supported, native_ui_type, &ui_type)) {
// TODO: Multiple UI support
@@ -959,6 +959,7 @@ main(int argc, char** argv)
symap_free(host.symap);
suil_host_free(ui_host);
sratom_free(host.sratom);
+ lilv_uis_free(host.uis);
lilv_world_free(world);
zix_sem_destroy(&exit_sem);
diff --git a/src/jalv_internal.h b/src/jalv_internal.h
index 50587a6..737abf0 100644
--- a/src/jalv_internal.h
+++ b/src/jalv_internal.h
@@ -157,6 +157,7 @@ typedef struct {
char* temp_dir; ///< Temporary plugin state directory
char* save_dir; ///< Plugin save directory
const LilvPlugin* plugin; ///< Plugin class (RDF data)
+ LilvUIs* uis; ///< All plugin UIs (RDF data)
const LilvUI* ui; ///< Plugin UI (RDF data)
LilvInstance* instance; ///< Plugin instance (shared library)
SuilInstance* ui_instance; ///< Plugin UI instance (shared library)