From fbe299af7f96d2d530d55e633ab82a4514d045db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mayoral=20Vilches?= Date: Mon, 25 Nov 2019 13:50:11 +0100 Subject: [PATCH] free valid_transitions for all states (#537) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * free valid_transitions for all states transition_map->states[i].valid_transitions wasn't being release which was leaking about 800 bytes per instantiation. See https://github.com/aliasrobotics/RVD/issues/333 Signed-off-by: VĂ­ctor Mayoral Vilches * Fixups. Signed-off-by: Chris Lalancette --- rcl_lifecycle/src/transition_map.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rcl_lifecycle/src/transition_map.c b/rcl_lifecycle/src/transition_map.c index 2540bc6..c8b467a 100644 --- a/rcl_lifecycle/src/transition_map.c +++ b/rcl_lifecycle/src/transition_map.c @@ -55,6 +55,13 @@ rcl_lifecycle_transition_map_fini( { rcl_ret_t fcn_ret = RCL_RET_OK; + // free valid transitions for all states + for (unsigned int i = 0; i < transition_map->states_size; ++i) { + if (transition_map->states[i].valid_transitions != NULL) { + allocator->deallocate(transition_map->states[i].valid_transitions, allocator->state); + transition_map->states[i].valid_transitions = NULL; + } + } // free the primary states allocator->deallocate(transition_map->states, allocator->state); transition_map->states = NULL;