Clean up (reformat and comment) Delete_Channel() function.

This commit is contained in:
Alexander Barton 2009-01-04 15:25:07 +01:00
parent 18efc7469c
commit 0659503afd
1 changed files with 16 additions and 11 deletions

View File

@ -1067,35 +1067,40 @@ Get_Next_Cl2Chan( CL2CHAN *Start, CLIENT *Client, CHANNEL *Channel )
} /* Get_Next_Cl2Chan */ } /* Get_Next_Cl2Chan */
/**
* Remove a channel and free all of its data structures.
*/
static bool static bool
Delete_Channel( CHANNEL *Chan ) Delete_Channel(CHANNEL *Chan)
{ {
/* delete channel structure */
CHANNEL *chan, *last_chan; CHANNEL *chan, *last_chan;
last_chan = NULL; last_chan = NULL;
chan = My_Channels; chan = My_Channels;
while( chan ) while (chan) {
{ if (chan == Chan)
if( chan == Chan ) break; break;
last_chan = chan; last_chan = chan;
chan = chan->next; chan = chan->next;
} }
if( ! chan ) return false; if (!chan)
return false;
Log( LOG_DEBUG, "Freed channel structure for \"%s\".", Chan->name ); Log(LOG_DEBUG, "Freed channel structure for \"%s\".", Chan->name);
array_free(&chan->topic); array_free(&chan->topic);
Lists_Free(&chan->list_bans); Lists_Free(&chan->list_bans);
Lists_Free(&chan->list_invites); Lists_Free(&chan->list_invites);
/* maintain channel list */ /* maintain channel list */
if( last_chan ) last_chan->next = chan->next; if (last_chan)
else My_Channels = chan->next; last_chan->next = chan->next;
free( chan ); else
My_Channels = chan->next;
free(chan);
return true; return true;
} /* Delete_Channel */ } /* Delete_Channel */
/* -eof- */ /* -eof- */