From 28bb07e85218dee7dd57513826394c52763c50a7 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 21 Jul 2012 09:24:11 +0000 Subject: [PATCH] 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 --- legacy/eeze/src/bin/eeze_scanner.c | 5 ++++- legacy/eeze/src/bin/eeze_scanner.h | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/legacy/eeze/src/bin/eeze_scanner.c b/legacy/eeze/src/bin/eeze_scanner.c index f7a0c03411..2acd736f41 100644 --- a/legacy/eeze/src/bin/eeze_scanner.c +++ b/legacy/eeze/src/bin/eeze_scanner.c @@ -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); diff --git a/legacy/eeze/src/bin/eeze_scanner.h b/legacy/eeze/src/bin/eeze_scanner.h index 54320ebf1d..a9757931af 100644 --- a/legacy/eeze/src/bin/eeze_scanner.h +++ b/legacy/eeze/src/bin/eeze_scanner.h @@ -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