e: segv-- on power removal.

SVN revision: 62181
This commit is contained in:
Cedric BAIL 2011-08-07 12:35:21 +00:00
parent 2640577d5e
commit 29dffc306c
3 changed files with 6 additions and 16 deletions

View File

@ -224,14 +224,13 @@ _battery_dbus_battery_add(const char *udi)
static void
_battery_dbus_battery_del(const char *udi)
{
Eina_List *l;
Battery *bat;
bat = _battery_battery_find(udi);
if (bat)
{
e_dbus_signal_handler_del(e_dbus_conn, bat->prop_change);
l = eina_list_data_find(device_batteries, bat);
device_batteries = eina_list_remove(device_batteries, bat);
eina_stringshare_del(bat->udi);
eina_stringshare_del(bat->technology);
eina_stringshare_del(bat->type);
@ -239,7 +238,6 @@ _battery_dbus_battery_del(const char *udi)
eina_stringshare_del(bat->model);
eina_stringshare_del(bat->vendor);
free(bat);
device_batteries = eina_list_remove_list(device_batteries, l);
return;
}
_battery_device_update();
@ -268,18 +266,16 @@ _battery_dbus_ac_adapter_add(const char *udi)
static void
_battery_dbus_ac_adapter_del(const char *udi)
{
Eina_List *l;
Ac_Adapter *ac;
ac = _battery_ac_adapter_find(udi);
if (ac)
{
e_dbus_signal_handler_del(e_dbus_conn, ac->prop_change);
l = eina_list_data_find(device_ac_adapters, ac);
device_ac_adapters = eina_list_remove(device_ac_adapters, ac);
eina_stringshare_del(ac->udi);
eina_stringshare_del(ac->product);
free(ac);
device_ac_adapters = eina_list_remove_list(device_ac_adapters, l);
return;
}
_battery_device_update();

View File

@ -142,7 +142,6 @@ _battery_udev_ac_add(const char *syspath)
static void
_battery_udev_battery_del(const char *syspath)
{
Eina_List *l;
Battery *bat;
if (!(bat = _battery_battery_find(syspath)))
@ -152,20 +151,18 @@ _battery_udev_battery_del(const char *syspath)
return;
}
l = eina_list_data_find(device_batteries, bat);
device_batteries = eina_list_remove(device_batteries, bat);
eina_stringshare_del(bat->udi);
eina_stringshare_del(bat->technology);
eina_stringshare_del(bat->model);
eina_stringshare_del(bat->vendor);
ecore_poller_del(bat->poll);
free(bat);
device_batteries = eina_list_remove_list(device_batteries, l);
}
static void
_battery_udev_ac_del(const char *syspath)
{
Eina_List *l;
Ac_Adapter *ac;
if (!(ac = _battery_ac_adapter_find(syspath)))
@ -175,10 +172,9 @@ _battery_udev_ac_del(const char *syspath)
return;
}
l = eina_list_data_find(device_ac_adapters, ac);
device_ac_adapters = eina_list_remove(device_ac_adapters, ac);
eina_stringshare_del(ac->udi);
free(ac);
device_ac_adapters = eina_list_remove_list(device_ac_adapters, l);
}
static Eina_Bool

View File

@ -999,14 +999,12 @@ _e_winlist_border_add(E_Border *bd, E_Zone *zone, E_Desk *desk)
static void
_e_winlist_border_del(E_Border *bd)
{
E_Winlist_Win *ww;
Eina_List *l;
if (bd == _last_border) _last_border = NULL;
for (l = _wins; l; l = l->next)
EINA_LIST_FOREACH(_wins, l, ww)
{
E_Winlist_Win *ww;
ww = l->data;
if (ww->border == bd)
{
e_object_unref(E_OBJECT(ww->border));