Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_container.c e_manager.c 


Log Message:
Safe looping on shutdown.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_container.c,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -3 -r1.114 -r1.115
--- e_container.c       25 Mar 2007 22:44:59 -0000      1.114
+++ e_container.c       5 Apr 2007 11:59:17 -0000       1.115
@@ -918,7 +918,7 @@
 static void
 _e_container_free(E_Container *con)
 {
-   Evas_List *l, *tmp;
+   Evas_List *l;
 
    ecore_x_window_del(con->event_win);
    /* We can't use e_object_del here, because border adds a ref to itself
@@ -939,11 +939,12 @@
          }
      }
  */   
-   for (l = con->zones; l;)
+   l = con->zones;
+   con->zones = NULL;
+   while (l)
      {
-       tmp = l;
-       l = l->next;
-       e_object_del(E_OBJECT(tmp->data));
+       e_object_del(E_OBJECT(l->data));
+       l = evas_list_remove_list(l, l);
      }
    con->manager->containers = evas_list_remove(con->manager->containers, con);
    e_canvas_del(con->bg_ecore_evas);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -3 -r1.63 -r1.64
--- e_manager.c 25 Mar 2007 22:45:00 -0000      1.63
+++ e_manager.c 5 Apr 2007 11:59:17 -0000       1.64
@@ -55,12 +55,14 @@
 EAPI int
 e_manager_shutdown(void)
 {
-   Evas_List *l, *tmp;
-   for (l = managers; l;)
+   Evas_List *l;
+
+   l = managers;
+   managers = NULL;
+   while (l)
      {
-       tmp = l;
-       l = l->next;
-       e_object_del(E_OBJECT(tmp->data));
+       e_object_del(E_OBJECT(l->data));
+       l = evas_list_remove_list(l, l);
      }
    if (frame_extents)
      {
@@ -491,7 +493,7 @@
 static void
 _e_manager_free(E_Manager *man)
 {
-   Evas_List *l, *tmp;
+   Evas_List *l;
 
    while (man->handlers)
      {
@@ -501,11 +503,12 @@
        man->handlers = evas_list_remove_list(man->handlers, man->handlers);
        ecore_event_handler_del(h);
      }
-   for (l = man->containers; l;)
+   l = man->containers;
+   man->containers = NULL;
+   while (l)
      {
-       tmp = l;
-       l = l->next;
-       e_object_del(E_OBJECT(tmp->data));
+       e_object_del(E_OBJECT(l->data));
+       l = evas_list_remove_list(l, l);
      }
    if (man->root != man->win)
      {



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to