[ekg2-commit] r4654 - trunk/ekg: trunk/ekg/dynstuff.c trunk/ekg/userlist.c
SVN commit
svn w toxygen.net
Czw, 18 Wrz 2008, 00:17:45 CEST
Author: wiechu
Date: 2008-09-18 00:17:45 +0200 (Thu, 18 Sep 2008)
New Revision: 4654
Modified:
trunk/ekg/dynstuff.c
trunk/ekg/userlist.c
Log:
- fix memleak (reported by darkjames on !ekg2)
- speed up private_item_find()
Modified: trunk/ekg/dynstuff.c
===================================================================
--- trunk/ekg/dynstuff.c 2008-09-17 22:15:56 UTC (rev 4653)
+++ trunk/ekg/dynstuff.c 2008-09-17 22:17:45 UTC (rev 4654)
@@ -1409,14 +1409,16 @@
static private_data_t *private_item_find(private_data_t **data, const char *item_name) {
private_data_t *item;
+ int cmp;
if (!item_name)
return NULL;
for (item = *data; item; item = item->next) {
- int cmp = xstrcmp(item->name, item_name);
- if (!cmp)
+ if ( !(cmp = xstrcmp(item->name, item_name)) )
return item;
+ if (cmp>0)
+ return NULL;
}
return NULL;
Modified: trunk/ekg/userlist.c
===================================================================
--- trunk/ekg/userlist.c 2008-09-17 22:15:56 UTC (rev 4653)
+++ trunk/ekg/userlist.c 2008-09-17 22:17:45 UTC (rev 4654)
@@ -102,10 +102,7 @@
static LIST_ADD_COMPARE(userlist_compare, userlist_t *) { return xstrcasecmp(data1->nickname, data2->nickname); }
static LIST_FREE_ITEM(userlist_free_item, userlist_t *) {
userlist_private_free(data);
- if (data->priv_list) {
- private_data_free(data->priv_list);
- xfree(data->priv_list);
- }
+ private_items_destroy(&data->priv_list);
xfree(data->uid); xfree(data->nickname); xfree(data->descr); xfree(data->foreign); xfree(data->last_descr);
ekg_groups_destroy(&(data->groups));
ekg_resources_destroy(&(data->resources));
Więcej informacji o liście dyskusyjnej ekg2-commit