use an id pointer to differentiate eeze_mount events and avoid segvs

SVN revision: 56997
This commit is contained in:
Mike Blumenkrantz 2011-02-14 00:50:29 +00:00
parent 5a646fe6fd
commit 1914e41eb4
1 changed files with 6 additions and 2 deletions

View File

@ -20,6 +20,7 @@ EAPI int EEZE_EVENT_DISK_MOUNT = 0;
EAPI int EEZE_EVENT_DISK_UNMOUNT = 0;
EAPI int EEZE_EVENT_DISK_ERROR = 0;
static Ecore_Event_Handler *_mount_handler = NULL;
static const char *eeze_mount_handler_id = "eeze_id_string";
/*
*
@ -54,11 +55,14 @@ _eeze_disk_mount_error_handler(Eeze_Disk *disk, const char *error)
}
static Eina_Bool
_eeze_disk_mount_result_handler(void *data __UNUSED__, int type __UNUSED__, Ecore_Exe_Event_Del *ev)
_eeze_disk_mount_result_handler(void *data, int type __UNUSED__, Ecore_Exe_Event_Del *ev)
{
Eeze_Disk *disk;
Eeze_Event_Disk_Mount *e;
if (data != eeze_mount_handler_id)
return ECORE_CALLBACK_PASS_ON;
if ((!ev) || (!ev->exe))
return ECORE_CALLBACK_RENEW;
if (!(disk = ecore_exe_data_get(ev->exe)))
@ -134,7 +138,7 @@ eeze_mount_init(void)
EEZE_EVENT_DISK_UNMOUNT = ecore_event_type_new();
EEZE_EVENT_DISK_ERROR = ecore_event_type_new();
_mount_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
(Ecore_Event_Handler_Cb)_eeze_disk_mount_result_handler, NULL);
(Ecore_Event_Handler_Cb)_eeze_disk_mount_result_handler, eeze_mount_handler_id);
return eeze_libmount_init();
}