From: Luigi Rizzo Date: Thu, 11 May 2006 09:29:37 +0000 (+0000) Subject: replace list unlinking with UNLINK macro X-Git-Tag: 1.4.0-beta1~1410 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=798b82e184fcc6ba9c31ac025ad7d0674b09178f;p=thirdparty%2Fasterisk.git replace list unlinking with UNLINK macro (when the list becomes an astobj this will be revisited; however at the moment the change would be too intrusive). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26800 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c87e9d0138..ea5e9312aa 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1259,6 +1259,15 @@ static const struct ast_channel_tech sip_tech = { .send_text = sip_sendtext, }; +/**--- some list management macros. **/ + +#define UNLINK(element, head, prev) do { \ + if (prev) \ + (prev)->next = (element)->next; \ + else \ + (head) = (element)->next; \ + } while (0) + /*! \brief Interface structure with callbacks used to connect to RTP module */ static struct ast_rtp_protocol sip_rtp = { type: "SIP", @@ -1716,10 +1725,7 @@ static int __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod, int p->pendinginvite = 0; } /* this is our baby */ - if (prev) - prev->next = cur->next; - else - p->packets = cur->next; + UNLINK(cur, p->packets, prev); if (cur->retransid > -1) { if (sipdebug && option_debug > 3) ast_log(LOG_DEBUG, "** SIP TIMER: Cancelling retransmit of packet (reply received) Retransid #%d\n", cur->retransid); @@ -2487,10 +2493,7 @@ static void __sip_destroy(struct sip_pvt *p, int lockowner) for (prev = NULL, cur = iflist; cur; prev = cur, cur = cur->next) { if (cur == p) { - if (prev) - prev->next = cur->next; - else - iflist = cur->next; + UNLINK(cur, iflist, prev); break; } }