From 7ed188fba327e90690968864fed64d20e7054455 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Tue, 11 Apr 2023 22:19:50 +0300 Subject: [PATCH] daemon: use a different GList pointer to iterate the components list This keeps the original head pointer intact, so that we can effectively free the list later. If we use the head pointer to iterate, then at the end we are not freeing anything because the pointer is NULL --- src/main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index fb47fb16..0045ffd4 100644 --- a/src/main.c +++ b/src/main.c @@ -86,6 +86,7 @@ struct _WpInitTransition WpTransition parent; WpObjectManager *om; GList *components; + GList *components_iter; ComponentData *curr_component; }; @@ -164,11 +165,11 @@ load_enable_components (WpInitTransition *self) { WpCore *core = wp_transition_get_source_object (WP_TRANSITION (self)); - while (self->components) { - self->curr_component = (ComponentData *) self->components->data; + while (self->components_iter) { + self->curr_component = (ComponentData *) self->components_iter->data; /* Advance */ - self->components = g_list_next (self->components); + self->components_iter = g_list_next (self->components_iter); /* Skip component if its dependencies are not met */ if (!component_meets_dependencies (core, self->curr_component)) { @@ -415,6 +416,7 @@ wp_init_transition_execute_step (WpTransition * transition, guint step) if (json_comps) append_json_components (&self->components, json_comps); + self->components_iter = g_list_first (self->components); wp_transition_advance (transition); break; }