From b60623df4de1e7d8e41a1c7c832dd857569faf6a Mon Sep 17 00:00:00 2001 From: hackerman-kl Date: Fri, 28 Nov 2025 09:01:14 +0100 Subject: [PATCH] module-avb: internal: destroy internal descriptors --- src/modules/module-avb/avdecc.c | 2 +- src/modules/module-avb/internal.h | 13 ++++++++++++- src/modules/module-avb/stream.c | 8 -------- src/modules/module-avb/stream.h | 6 ------ 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/modules/module-avb/avdecc.c b/src/modules/module-avb/avdecc.c index 9885b6c01..8eecee6de 100644 --- a/src/modules/module-avb/avdecc.c +++ b/src/modules/module-avb/avdecc.c @@ -311,7 +311,7 @@ void avdecc_server_free(struct server *server) { struct impl *impl = server->impl; - stream_destroy_all(server); + server_destroy_descriptors(server); spa_list_remove(&server->link); if (server->source) pw_loop_destroy_source(impl->loop, server->source); diff --git a/src/modules/module-avb/internal.h b/src/modules/module-avb/internal.h index e44de5fbb..79a1562b9 100644 --- a/src/modules/module-avb/internal.h +++ b/src/modules/module-avb/internal.h @@ -83,7 +83,18 @@ struct server { #include "stream.h" -static inline struct descriptor *server_find_descriptor(struct server *server, +static inline void server_destroy_descriptors(struct server *server) +{ + struct descriptor *d, *t; + + spa_list_for_each_safe(d, t, &server->descriptors, link) { + free(d->ptr); + spa_list_remove(&d->link); + free(d); + } +} + +static inline const struct descriptor *server_find_descriptor(struct server *server, uint16_t type, uint16_t index) { struct descriptor *d; diff --git a/src/modules/module-avb/stream.c b/src/modules/module-avb/stream.c index 89e5a420c..f7101bdf0 100644 --- a/src/modules/module-avb/stream.c +++ b/src/modules/module-avb/stream.c @@ -346,14 +346,6 @@ void stream_destroy(struct stream *stream) avb_mrp_attribute_destroy(stream->listener_attr->mrp); } -void stream_destroy_all(struct server *server) -{ - struct stream *s, *t; - spa_list_for_each_safe(s, t, &server->streams, link) { - stream_destroy(s); - } -} - static int setup_socket(struct stream *stream) { struct server *server = stream->server; diff --git a/src/modules/module-avb/stream.h b/src/modules/module-avb/stream.h index c76a09380..f650cc216 100644 --- a/src/modules/module-avb/stream.h +++ b/src/modules/module-avb/stream.h @@ -76,12 +76,6 @@ struct stream *server_create_stream(struct server *server, struct stream *stream void stream_destroy(struct stream *stream); -/** - * \brief unregister MRP attribute for the stream - * and free the allocated resources for the stream. - */ -void stream_destroy_all(struct server *server); - int stream_activate(struct stream *stream, uint16_t index, uint64_t now); int stream_deactivate(struct stream *stream, uint64_t now);