aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-08-08 18:35:04 -0400
committerDavid Robillard <d@drobilla.net>2022-08-17 13:50:47 -0400
commit73a795c17de2a8df0174cbc8a3a00353a4d60446 (patch)
tree182e26957b96180610c4b2c3b0512a6aaee0f865 /src
parent94271414197f2bc758076811d6d31c0771848394 (diff)
downloadjalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.tar.gz
jalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.tar.bz2
jalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.zip
Fix memory leaks
Diffstat (limited to 'src')
-rw-r--r--src/jalv.c5
-rw-r--r--src/worker.c10
2 files changed, 8 insertions, 7 deletions
diff --git a/src/jalv.c b/src/jalv.c
index 0778a7d..2b79af7 100644
--- a/src/jalv.c
+++ b/src/jalv.c
@@ -1278,6 +1278,7 @@ jalv_open(Jalv* const jalv, int* argc, char*** argv)
// Apply loaded state to plugin instance if necessary
if (state) {
jalv_apply_state(jalv, state);
+ lilv_state_free(state);
}
if (jalv->opts.controls) {
@@ -1336,6 +1337,9 @@ jalv_close(Jalv* const jalv)
// Destroy the worker
jalv_worker_destroy(&jalv->worker);
+ if (jalv->safe_restore) {
+ jalv_worker_destroy(&jalv->state_worker);
+ }
// Deactivate plugin
#if USE_SUIL
@@ -1374,6 +1378,7 @@ jalv_close(Jalv* const jalv)
sratom_free(jalv->sratom);
sratom_free(jalv->ui_sratom);
+ serd_env_free(jalv->env);
lilv_uis_free(jalv->uis);
lilv_world_free(jalv->world);
diff --git a/src/worker.c b/src/worker.c
index 68030c5..2abf363 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -82,13 +82,9 @@ jalv_worker_finish(JalvWorker* worker)
void
jalv_worker_destroy(JalvWorker* worker)
{
- if (worker->requests) {
- if (worker->threaded) {
- zix_ring_free(worker->requests);
- }
- zix_ring_free(worker->responses);
- free(worker->response);
- }
+ zix_ring_free(worker->requests);
+ zix_ring_free(worker->responses);
+ free(worker->response);
}
LV2_Worker_Status