changeset 539:ffdfddd351b8

Fix some memory leaks
author Mikael Berthe <mikael@lilotux.net>
date Fri, 25 Nov 2005 23:44:47 +0100
parents 6310b928d04a
children 887c1bd37617
files mcabber/src/commands.c mcabber/src/jabglue.c mcabber/src/roster.c mcabber/src/roster.h mcabber/src/screen.c
diffstat 5 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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;
     }
--- 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);
--- 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,
--- 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);
--- 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';