raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7d2be9edcc171e5dc7693d2f230fa48a34a7e02a

commit 7d2be9edcc171e5dc7693d2f230fa48a34a7e02a
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Jan 29 21:03:30 2021 +0000

    zone - on free - dont del things we may later access during free
    
    del them after we might access them... :) fix seg.
    @fix
---
 src/bin/e_zone.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c
index 1991b9512..cca3f6db5 100644
--- a/src/bin/e_zone.c
+++ b/src/bin/e_zone.c
@@ -1467,16 +1467,19 @@ _e_zone_free(E_Zone *zone)
      }
 
    /* free desks */
-   for (x = 0; x < zone->desk_x_count; x++)
-     {
-        for (y = 0; y < zone->desk_y_count; y++)
-          e_object_del(E_OBJECT(zone->desks[x + (y * zone->desk_x_count)]));
-     }
    while (zone->obstacles)
      {
-        E_Object *obs = (void*)EINA_INLIST_CONTAINER_GET(zone->obstacles, 
E_Zone_Obstacle);
+        E_Object *obs = (void *)EINA_INLIST_CONTAINER_GET(zone->obstacles, 
E_Zone_Obstacle);
         e_object_del(obs);
      }
+   for (x = 0; x < zone->desk_x_count; x++)
+     {
+        for (y = 0; y < zone->desk_y_count; y++)
+          {
+             e_object_del(E_OBJECT(zone->desks[x + (y * zone->desk_x_count)]));
+             zone->desks[x + (y * zone->desk_x_count)] = NULL;
+          }
+     }
    free(zone->desks);
    free(zone->randr2_id);
    free(zone);

-- 


Reply via email to