From 6a7cba0aa26393a542c88d7e9287a01fdf05d2d4 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 10 Mar 2026 07:32:36 -0400 Subject: [PATCH] MT#55283 simplify macro Change-Id: I6c603930562944040b237612fb21b9a888f63183 --- daemon/call.c | 4 ---- lib/iqueue.h | 15 +++++---------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index a2049734e..3fe46f998 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -4086,7 +4086,6 @@ bool __unsubscribe_media(struct call_media *which, struct call_media *from) */ __attribute__((nonnull(1, 2))) static void __unsubscribe_all_offer_answer_medias(struct call_media *cm, medias_q *medias) { - IQUEUE_FOREACH_SAFE_DECL(&cm->media_subscribers, ms); IQUEUE_FOREACH_SAFE(&cm->media_subscribers, ms) { if (!ms->attrs.offer_answer) continue; @@ -4106,7 +4105,6 @@ static void __unsubscribe_medias_from_all(struct call_monologue *ml) { if (!media) continue; - IQUEUE_FOREACH_SAFE_DECL(&media->media_subscriptions, subscription); IQUEUE_FOREACH_SAFE(&media->media_subscriptions, subscription) __unsubscribe_media_link(media, subscription); } @@ -4573,7 +4571,6 @@ int monologue_unsubscribe(struct call_monologue *dst_ml, sdp_ng_flags *flags) { __media_unconfirm(media, "media unsubscribe"); /* TODO: should we care about subscribers as well? */ - IQUEUE_FOREACH_SAFE_DECL(&media->media_subscriptions, ms); IQUEUE_FOREACH_SAFE(&media->media_subscriptions, ms) { struct call_media *src_media = ms->media; @@ -4752,7 +4749,6 @@ int monologue_inject_stop(struct call_monologue *src_ml, struct call_monologue * if (!dst_media || dst_media->type_id != MT_AUDIO) continue; - IQUEUE_FOREACH_SAFE_DECL(&dst_media->media_subscriptions, ms); IQUEUE_FOREACH_SAFE(&dst_media->media_subscriptions, ms) { struct call_media *src_media = ms->media; if (!src_media) diff --git a/lib/iqueue.h b/lib/iqueue.h index b707161e3..7dd5aff65 100644 --- a/lib/iqueue.h +++ b/lib/iqueue.h @@ -112,20 +112,15 @@ var; var = ((__typeof((list)->offset)) var)->link.next) -#define IQUEUE_FOREACH_SAFE_DECL(list, var) \ - __typeof__ ( ({ __typeof__ (*(list)->head) __t; &__t; }) ) var, __next ## var \ - - #define IQUEUE_FOREACH_SAFE(list, var) \ - for (var = (list)->head, \ - __next ## var = var ? ((__typeof((list)->offset)) var)->link.next : NULL; \ - var; \ - var = __next ## var, \ - __next ## var = var ? ((__typeof((list)->offset)) var)->link.next : NULL) + for (__typeof__ ( ({ __typeof__ (*(list)->head) __t; &__t; }) ) var = (list)->head, \ + __next ## var = var ? ((__typeof((list)->offset)) var)->link.next : NULL; \ + var; \ + var = __next ## var, \ + __next ## var = var ? ((__typeof((list)->offset)) var)->link.next : NULL) #define i_queue_clear_full(list, fn) do { \ - IQUEUE_FOREACH_SAFE_DECL(list, __ele); \ IQUEUE_FOREACH_SAFE(list, __ele) \ (fn)(__ele); \ i_queue_init(list); \