From da2be0adcd029ec65bfed26af4f811e244705730 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 17 Nov 2024 10:49:38 -0500 Subject: Factor out free_control() --- src/control.c | 13 +++++++++++++ src/control.h | 4 ++++ src/jalv.c | 10 +--------- 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/control.c b/src/control.c index 451eac5..19cf3e9 100644 --- a/src/control.c +++ b/src/control.c @@ -168,6 +168,19 @@ new_property_control(LilvWorld* const world, return id; } +void +free_control(ControlID* const control) +{ + lilv_node_free(control->node); + lilv_node_free(control->symbol); + lilv_node_free(control->label); + lilv_node_free(control->group); + lilv_node_free(control->min); + lilv_node_free(control->max); + lilv_node_free(control->def); + free(control); +} + void add_control(Controls* controls, ControlID* control) { diff --git a/src/control.h b/src/control.h index 858f933..beafa47 100644 --- a/src/control.h +++ b/src/control.h @@ -80,6 +80,10 @@ new_property_control(LilvWorld* world, LV2_URID_Map* map, LV2_Atom_Forge* forge); +/// Free a control allocated with new_port_control() or new_property_control() +void +free_control(ControlID* control); + /// Add a control to the given controls set, reallocating as necessary void add_control(Controls* controls, ControlID* control); diff --git a/src/jalv.c b/src/jalv.c index 2ab2e14..a99535b 100644 --- a/src/jalv.c +++ b/src/jalv.c @@ -1229,15 +1229,7 @@ jalv_close(Jalv* const jalv) #endif for (unsigned i = 0; i < jalv->controls.n_controls; ++i) { - ControlID* const control = jalv->controls.controls[i]; - lilv_node_free(control->node); - lilv_node_free(control->symbol); - lilv_node_free(control->label); - lilv_node_free(control->group); - lilv_node_free(control->min); - lilv_node_free(control->max); - lilv_node_free(control->def); - free(control); + free_control(jalv->controls.controls[i]); } free(jalv->controls.controls); -- cgit v1.2.1