aboutsummaryrefslogtreecommitdiffstats
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
parent94271414197f2bc758076811d6d31c0771848394 (diff)
downloadjalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.tar.gz
jalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.tar.bz2
jalv-73a795c17de2a8df0174cbc8a3a00353a4d60446.zip
Fix memory leaks
-rw-r--r--NEWS3
-rw-r--r--src/jalv.c5
-rw-r--r--src/worker.c10
3 files changed, 10 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index d72795d..3eba9ac 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ jalv (1.6.7) unstable; urgency=medium
* Fix MSVC build
* Fix crash when running jalv without arguments
* Fix man page headers
+ * Fix memory leaks
* Fix outdated man pages
* Flush stdout after printing control values in console interface
* Print status information consistently to stdout
@@ -16,7 +17,7 @@ jalv (1.6.7) unstable; urgency=medium
* Remove Qt4 support
* Switch to meson build system
- -- David Robillard <d@drobilla.net> Wed, 20 Jul 2022 19:49:03 +0000
+ -- David Robillard <d@drobilla.net> Mon, 08 Aug 2022 22:34:43 +0000
jalv (1.6.6) stable; urgency=medium
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