# HG changeset patch # User Mikael Berthe # Date 1132958687 -3600 # Node ID ffdfddd351b87318f2ba2412656bfedcc96f7edc # Parent 6310b928d04a0a98da4d04017a686c5f02f19c8f Fix some memory leaks diff -r 6310b928d04a -r ffdfddd351b8 mcabber/src/commands.c --- a/mcabber/src/commands.c Fri Nov 25 23:10:26 2005 +0100 +++ b/mcabber/src/commands.c Fri Nov 25 23:44:47 2005 +0100 @@ -1261,7 +1261,7 @@ return; } // Quick check: if there are resources, we haven't left - if (buddy_getresources(bud)) { + if (buddy_isresource(bud)) { scr_LogPrint(LPRINT_NORMAL, "You haven't left this room!"); return; } diff -r 6310b928d04a -r ffdfddd351b8 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Fri Nov 25 23:10:26 2005 +0100 +++ b/mcabber/src/jabglue.c Fri Nov 25 23:44:47 2005 +0100 @@ -275,7 +275,7 @@ char *to; struct T_presence *pres = presencedata; - if (!buddy_getresources(room)) // FIXME: that's a memory leak + if (!buddy_isresource(room)) return; jid = buddy_getjid(room); diff -r 6310b928d04a -r ffdfddd351b8 mcabber/src/roster.c --- a/mcabber/src/roster.c Fri Nov 25 23:10:26 2005 +0100 +++ b/mcabber/src/roster.c Fri Nov 25 23:44:47 2005 +0100 @@ -874,6 +874,19 @@ return reslist; } +// buddy_isresource(roster_data) +// Return true if there is at least one resource +// (which means, for a room, that it isn't empty) +int buddy_isresource(gpointer rosterdata) +{ + roster *roster_usr = rosterdata; + if (!roster_usr) + return FALSE; + if (roster_usr->resource) + return TRUE; + return FALSE; +} + // buddy_resource_setname(roster_data, oldname, newname) // Useful for nickname change in a MUC room void buddy_resource_setname(gpointer rosterdata, const char *resname, diff -r 6310b928d04a -r ffdfddd351b8 mcabber/src/roster.h --- a/mcabber/src/roster.h Fri Nov 25 23:10:26 2005 +0100 +++ b/mcabber/src/roster.h Fri Nov 25 23:44:47 2005 +0100 @@ -80,6 +80,7 @@ enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname); const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname); gchar buddy_getresourceprio(gpointer rosterdata, const char *resname); +int buddy_isresource(gpointer rosterdata); GSList *buddy_getresources(gpointer rosterdata); void buddy_resource_setname(gpointer rosterdata, const char *resname, const char *newname); diff -r 6310b928d04a -r ffdfddd351b8 mcabber/src/screen.c --- a/mcabber/src/screen.c Fri Nov 25 23:10:26 2005 +0100 +++ b/mcabber/src/screen.c Fri Nov 25 23:44:47 2005 +0100 @@ -785,7 +785,7 @@ } if (ismuc) { - if (buddy_getresources(BUDDATA(buddy))) + if (buddy_isresource(BUDDATA(buddy))) status = 'C'; else status = 'x';