diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index 8194e2791..7dead6055 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -5343,6 +5343,9 @@ static void impl_clear(struct impl *impl) struct server *s; struct client *c; + pw_map_for_each(&impl->modules, impl_unload_module, impl); + pw_map_clear(&impl->modules); + spa_list_consume(s, &impl->servers, link) server_free(s); @@ -5355,9 +5358,6 @@ static void impl_clear(struct impl *impl) pw_map_for_each(&impl->samples, impl_free_sample, impl); pw_map_clear(&impl->samples); - pw_map_for_each(&impl->modules, impl_unload_module, impl); - pw_map_clear(&impl->modules); - #ifdef HAVE_DBUS if (impl->dbus_name) { dbus_release_name(impl->dbus_name);