diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 826a8da33..75b176754 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -899,7 +899,6 @@ _e_border_del(E_Border *bd) { E_Event_Border_Remove *ev; - if (e_object_del_get(E_OBJECT(bd))) return; ev = calloc(1, sizeof(E_Event_Border_Remove)); ev->border = bd; e_object_ref(E_OBJECT(bd)); diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 7ce09d69f..f345032bf 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -49,7 +49,6 @@ e_container_new(E_Manager *man) con = E_OBJECT_ALLOC(E_Container, _e_container_free); if (!con) return NULL; con->manager = man; - e_object_ref(E_OBJECT(con->manager)); con->manager->containers = evas_list_append(con->manager->containers, con); con->w = con->manager->w; con->h = con->manager->h; @@ -321,12 +320,12 @@ e_container_shape_rects_get(E_Container_Shape *es) static void _e_container_free(E_Container *con) { - while (con->clients) e_object_del(E_OBJECT(con->clients->data)); + while (con->clients) e_object_free(E_OBJECT(con->clients->data)); + while (con->zones) e_object_free(E_OBJECT(con->zones->data)); con->manager->containers = evas_list_remove(con->manager->containers, con); e_canvas_del(con->bg_ecore_evas); ecore_evas_free(con->bg_ecore_evas); ecore_x_window_del(con->win); - e_object_unref(E_OBJECT(con->manager)); free(con); } diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index b5976144e..d51dc902c 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -40,8 +40,6 @@ e_desk_new(E_Zone *zone, int x, int y) desk->num = ++desk_count; snprintf(name, sizeof(name), "Desktop %d, %d", x, y); desk->name = strdup(name); - e_object_ref(E_OBJECT(zone)); - return desk; } @@ -199,7 +197,6 @@ _e_desk_free(E_Desk *desk) if (desk->name) free(desk->name); // zone->desks = evas_list_remove(zone->desks, desk); - e_object_unref(E_OBJECT(desk->zone)); free(desk); } diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 880486a76..ef4ff9cfc 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -168,7 +168,7 @@ _e_manager_free(E_Manager *man) ecore_event_handler_del(h); } while (man->containers) - e_object_unref(E_OBJECT(man->containers->data)); + e_object_free(E_OBJECT(man->containers->data)); ecore_x_window_del(man->win); managers = evas_list_remove(managers, man); free(man); diff --git a/src/bin/e_object.c b/src/bin/e_object.c index 2fcb1c9a8..3ad91e13c 100644 --- a/src/bin/e_object.c +++ b/src/bin/e_object.c @@ -97,7 +97,7 @@ e_object_unref(E_Object *obj) E_OBJECT_CHECK_RETURN(obj, -1); obj->references--; ref = obj->references; - if (obj->references <= 0) e_object_free(obj); + if (obj->references == 0) e_object_free(obj); return ref; } diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index ffd518c79..644a2bbc3 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -46,7 +46,6 @@ e_zone_new(E_Container *con, int x, int y, int w, int h) zone->h = h; zone->num = ++zone_count; - e_object_ref(E_OBJECT(con)); con->zones = evas_list_append(con->zones, zone); if (1) @@ -199,11 +198,11 @@ e_zone_clients_list_get(E_Zone *zone) static void _e_zone_free(E_Zone *zone) { - E_Container *con = zone->container; - if (zone->name) - free(zone->name); + E_Container *con; + + con = zone->container; + if (zone->name) free(zone->name); con->zones = evas_list_remove(con->zones, zone); - e_object_unref(E_OBJECT(zone->container)); free(zone); }