2011-11-11 Carsten Haitzler (The Rasterman)
* Fix DSO linking to edbus to include libdbus linking and includes
+
+2011-11-27 Mike Blumenkrantz
+
+ * Fix case where fd handler could be added twice for dbus fd
* DSO linking issues fixed
* crash on e-notify-send with invalid session bus set
* when app has no idle time, e_dbus's idlers dont process anything
+ * error when trying to add duplicate fd handler for dbus fd
Improvements:
{
unsigned int dflags;
Ecore_Fd_Handler_Flags eflags;
+ Eina_List *l;
+ Ecore_Fd_Handler *fdh;
if (hd->fd_handler) return;
- DBG("fd handler add (%d)", hd->fd);
-
dflags = dbus_watch_get_flags(hd->watch);
eflags = ECORE_FD_ERROR;
if (dflags & DBUS_WATCH_READABLE) eflags |= ECORE_FD_READ;
if (dflags & DBUS_WATCH_WRITABLE) eflags |= ECORE_FD_WRITE;
+ EINA_LIST_FOREACH(hd->cd->fd_handlers, l, fdh)
+ {
+ if (ecore_main_fd_handler_fd_get(fdh) != hd->fd) continue;
+ DBG("fd handler mod (%d)", hd->fd);
+ ecore_main_fd_handler_active_set(fdh, eflags);
+ return;
+ }
+ DBG("fd handler add (%d)", hd->fd);
hd->fd_handler = ecore_main_fd_handler_add(hd->fd,
eflags,
e_dbus_fd_handler,