From 7d2be9edcc171e5dc7693d2f230fa48a34a7e02a Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 29 Jan 2021 21:03:30 +0000 Subject: [PATCH] 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,15 +1467,18 @@ _e_zone_free(E_Zone *zone) } /* free desks */ + while (zone->obstacles) + { + 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)])); - } - while (zone->obstacles) - { - E_Object *obs = (void*)EINA_INLIST_CONTAINER_GET(zone->obstacles, E_Zone_Obstacle); - e_object_del(obs); + { + 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);