[ekg2-commit] ekg2: people.c (HEAD) [darkjames]
CVS commit
cvs w toxygen.net
Czw, 22 Lis 2007, 19:23:59 CET
Module name: ekg2
Changes by: darkjames 2007-11-22 19:23:57
Modified files:
people.c
Log message:
[irc] LIST_FREE_ITEM ()
Index: people.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/irc/people.c,v
diff -d -u -r1.41 -r1.42
--- people.c 2 Sep 2007 21:19:40 -0000 1.41
+++ people.c 22 Nov 2007 18:23:57 -0000 1.42
@@ -32,6 +32,23 @@
enum { OTHER_NETWORK };
+static LIST_FREE_ITEM(list_irc_people_free, people_t *) {
+ xfree(data->nick);
+ xfree(data->realname);
+ xfree(data->host);
+ xfree(data->ident);
+ xfree(data);
+}
+
+static LIST_FREE_ITEM(list_irc_channel_free, channel_t *) {
+ xfree(data->name);
+ xfree(data->topic);
+ xfree(data->topicby);
+ xfree(data->mode_str);
+ list_destroy(chan->banlist, 1);
+ xfree(data);
+}
+
/* add others
*/
int irc_xstrcasecmp_default(char *str1, char *str2)
@@ -261,13 +278,7 @@
if (!(nick->channels)) {
/* delete entry in private->people
debug("-%s lista ludzi, ", nick->nick); */
- /* mh, zerowanie tego tak raczej niepotrzebne... ale jest */
- xfree(nick->nick); nick->nick = NULL;
- xfree(nick->ident); nick->ident = NULL;
- xfree(nick->host); nick->host = NULL;
- xfree(nick->realname); nick->realname = NULL;
-
- list_remove(&(j->people), nick, 1);
+ LIST_REMOVE(&(j->people), nick, list_irc_people_free);
list_remove(&(chan->onchan), nick, 0);
return 1;
@@ -559,25 +570,10 @@
*/
}
- for (t1=j->people; t1; t1=t1->next) {
- per = (people_t *) t1->data;
- xfree(per->nick);
- xfree(per->realname);
- xfree(per->host);
- xfree(per->ident);
- }
- list_destroy(j->people, 1);
+ LIST_DESTROY(j->people, list_irc_people_free);
j->people = NULL;
- for (t1=j->channels; t1; t1=t1->next) {
- chan = t1->data;
- xfree(chan->name);
- xfree(chan->topic);
- xfree(chan->topicby);
- xfree(chan->mode_str);
- list_destroy(chan->banlist, 1);
- }
- list_destroy(j->channels, 1);
+ LIST_DESTROY(j->channels, list_irc_channel_free);
j->channels = NULL;
return 0;
Więcej informacji o liście dyskusyjnej ekg2-commit