Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_main.c e_order.c 


Log Message:
ref and free desktops for .order files.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.225
retrieving revision 1.226
diff -u -3 -r1.225 -r1.226
--- e_main.c    24 Jul 2007 18:47:24 -0000      1.225
+++ e_main.c    26 Jul 2007 12:29:52 -0000      1.226
@@ -903,11 +903,6 @@
    /* if we were flagged to restart, then  restart. */
    if (restart)
      {
-       /* selected shutdown */
-#if 0
-       e_ipc_shutdown();
-       ecore_file_shutdown();
-#endif
        e_util_env_set("E_RESTART_OK", "1");
        ecore_app_restart();
      }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_order.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- e_order.c   26 Jul 2007 11:34:09 -0000      1.26
+++ e_order.c   26 Jul 2007 12:29:52 -0000      1.27
@@ -68,10 +68,15 @@
 EAPI void
 e_order_remove(E_Order *eo, Efreet_Desktop *desktop)
 {
+   Evas_List *tmp;
+
    E_OBJECT_CHECK(eo);
    E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
 
-   eo->desktops = evas_list_remove(eo->desktops, desktop);
+   tmp = evas_list_find_list(eo->desktops, desktop);
+   if (!tmp) return;
+   efreet_desktop_free(tmp->data);
+   eo->desktops = evas_list_remove_list(eo->desktops, tmp);
    _e_order_save(eo);
 }
 
@@ -81,6 +86,7 @@
    E_OBJECT_CHECK(eo);
    E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
 
+   efreet_desktop_ref(desktop);
    eo->desktops = evas_list_append(eo->desktops, desktop);
    _e_order_save(eo);
 }
@@ -91,6 +97,7 @@
    E_OBJECT_CHECK(eo);
    E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
 
+   efreet_desktop_ref(desktop);
    eo->desktops = evas_list_prepend_relative(eo->desktops, desktop, before);
    _e_order_save(eo);
 }
@@ -144,7 +151,10 @@
    E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
 
    while (eo->desktops)
-     eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
+     {
+       efreet_desktop_free(eo->desktops->data);
+       eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
+     }
    _e_order_save(eo);
 }
 
@@ -152,7 +162,11 @@
 static void
 _e_order_free(E_Order *eo)
 {
-   evas_list_free(eo->desktops);
+   while (eo->desktops)
+     {
+       efreet_desktop_free(eo->desktops->data);
+       eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
+     }
    if (eo->path) evas_stringshare_del(eo->path);
    if (eo->monitor) ecore_file_monitor_del(eo->monitor);
    orders = evas_list_remove(orders, eo);
@@ -177,7 +191,11 @@
    FILE *f;
    char *dir;
 
-   eo->desktops = evas_list_free(eo->desktops);
+   while (eo->desktops)
+     {
+       efreet_desktop_free(eo->desktops->data);
+       eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
+     }
    if (!eo->path) return;
 
    dir = ecore_file_dir_get(eo->path);
@@ -208,7 +226,11 @@
                       if (!desktop)
                         desktop = efreet_desktop_get(ecore_file_file_get(buf));
                       if (!desktop)
-                        desktop = 
efreet_util_desktop_file_id_find(ecore_file_file_get(buf));
+                        {
+                           desktop = 
efreet_util_desktop_file_id_find(ecore_file_file_get(buf));
+                           /* Need to ref this as we only get a cache pointer 
from efreet_util */
+                           if (desktop) efreet_desktop_ref(desktop);
+                        }
                       if (desktop) eo->desktops = 
evas_list_append(eo->desktops, desktop);
                    }
               }
@@ -283,6 +305,7 @@
                {
                   if (l2->data == event->current)
                     {
+                       efreet_desktop_free(l2->data);
                        eo->desktops = evas_list_remove_list(eo->desktops, l2);
                        changed = 1;
                     }
@@ -303,6 +326,8 @@
                {
                   if (l2->data == event->previous)
                     {
+                       efreet_desktop_free(l2->data);
+                       efreet_desktop_ref(event->current);
                        l2->data = event->current;
                        changed = 1;
                     }



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to