forked from enlightenment/efl
and eezes-scaanner didnt del the polelr it added per device(cdrom one)
when the dev is deleted.. crash waiting to happen. in addition it didnt start a new polelr when it added one again. start one too. SVN revision: 74263
This commit is contained in:
parent
e174bc3c99
commit
28bb07e852
|
@ -263,7 +263,7 @@ storage_setup(void)
|
|||
dev->mounted = eeze_disk_mounted_get(disk);
|
||||
eeze_disk_free(disk);
|
||||
event_send(sys, EEZE_SCANNER_EVENT_TYPE_ADD, EINA_FALSE);
|
||||
ecore_poller_add(ECORE_POLLER_CORE, 32, (Ecore_Task_Cb)cdrom_timer, dev);
|
||||
dev->poller = ecore_poller_add(ECORE_POLLER_CORE, 32, (Ecore_Task_Cb)cdrom_timer, dev);
|
||||
storage_cdrom = eina_list_append(storage_cdrom, dev);
|
||||
}
|
||||
volume_devices = eeze_udev_find_by_type(EEZE_UDEV_TYPE_DRIVE_MOUNTABLE, NULL);
|
||||
|
@ -354,6 +354,8 @@ cb_stor_chg(const char *device, Eeze_Udev_Event ev, void *data __UNUSED__, Eeze_
|
|||
eina_stringshare_del(str);
|
||||
dev = calloc(1, sizeof(Eeze_Scanner_Device));
|
||||
dev->device = eina_stringshare_add(device);
|
||||
dev->poller = ecore_poller_add(ECORE_POLLER_CORE, 32,
|
||||
(Ecore_Task_Cb)cdrom_timer, dev);
|
||||
storage_cdrom = eina_list_append(storage_cdrom, dev);
|
||||
break;
|
||||
case EEZE_UDEV_EVENT_REMOVE:
|
||||
|
@ -369,6 +371,7 @@ cb_stor_chg(const char *device, Eeze_Udev_Event ev, void *data __UNUSED__, Eeze_
|
|||
EINA_LIST_FOREACH(storage_cdrom, l, dev)
|
||||
if (device == dev->device)
|
||||
{
|
||||
if (dev->poller) ecore_poller_del(dev->poller);
|
||||
storage_cdrom = eina_list_remove_list(storage_cdrom, l);
|
||||
eina_stringshare_del(dev->device);
|
||||
free(dev);
|
||||
|
|
|
@ -25,8 +25,9 @@ typedef struct
|
|||
|
||||
typedef struct
|
||||
{
|
||||
Ecore_Poller *poller;
|
||||
const char *device;
|
||||
Eina_Bool mounted : 1;
|
||||
Eina_Bool mounted;
|
||||
} Eeze_Scanner_Device;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue