Enlightenment CVS committal

Author  : sebastid
Project : misc
Module  : embrace

Dir     : misc/embrace/src/plugins/imap


Modified Files:
        imap.c 


Log Message:
Fix memleak in imap plugin.

===================================================================
RCS file: /cvsroot/enlightenment/misc/embrace/src/plugins/imap/imap.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- imap.c      3 Sep 2005 12:38:43 -0000       1.20
+++ imap.c      3 Sep 2005 13:03:15 -0000       1.21
@@ -1,5 +1,5 @@
 /*
- * $Id: imap.c,v 1.20 2005/09/03 12:38:43 tsauerbeck Exp $
+ * $Id: imap.c,v 1.21 2005/09/03 13:03:15 sebastid Exp $
  * vim:noexpandtab:ts=4:sw=4:sts=4
  *
  * Copyright (C) 2004 Embrace project.
@@ -308,6 +308,23 @@
        return s;
 }
 
+static bool destroy_server (ImapServer *server)
+{
+       assert (server);
+
+       free (server->host);
+       free (server->user);
+       free (server->pass);
+
+       if (server->timer)
+               ecore_timer_del (server->timer);
+
+       servers = evas_list_remove (servers, server);
+       free (server);
+       
+       return true;
+}
+
 static bool imap_add_server (MailBox *mb)
 {
        ImapServer *server;
@@ -332,7 +349,7 @@
                        server->timer = ecore_timer_add (server->interval,
                                                         on_timer, server);
                        if (!server->timer) {
-                               free (server);
+                               destroy_server (server);
                                return false;
                        }
                }
@@ -351,16 +368,8 @@
 
        /* FIXME: reschedule server timer */
        server->clients = evas_list_remove (server->clients, mb);
-       if (!server->clients) {
-               free (server->host);
-               free (server->user);
-               free (server->pass);
-
-               ecore_timer_del (server->timer);
-
-               servers = evas_list_remove (servers, server);
-               free (server);
-       }
+       if (!server->clients)
+               destroy_server (server);
 
        return true;
 }




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to