Subject: Re: [E-devel] [Patch] ecore_ipc - remove potential risk in
ecore_ipc_shutdown
I found a problem this infinite loop case.
If server is deleted, then ECORE_IPC_EVENT_SERVER_DEL callback
function will be called in client side.
It will happen infinite loop in ecore_ipc_shutdown if
ecore_ipc_shutdown called in this ECORE_IPC_EVENT_SERVER_DEL callback
function.
For example,
server_del_handler =
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _server_del_cb, NULL);
static Eina_Bool
_server_del_cb(void *data, int type, void *event)
{
ecore_ipc_shutdown();
return EINA_TRUE;
}
If server is deleted,
1. _ecore_ipc_event_server_del : svr->event_count++
2. _server_del_cb : ecore_ipc_shutdown called
3. ecore_ipc_shutdown : while (servers) ecore_ipc_server_del(eina_list_data_get(servers))
4. ecore_ipc_server_del : can't eina_list_remove(servers, svr) because event_count != 0
5. infinite loop
I think this while code is very dangerous whether user miss or not.
I modified EINA_LIST_FOREACH_SAFE instead of EINA_LIST_FOREACH refer
to ecore_con.
Please review this patch.
SVN revision: 67874
missing Logfn's. Add handler to free the mouse_move event when we're
done with it. Add a function to retrieve the 'last mouse button down
time' (needed for fixing surface move).
SVN revision: 67781
ecore_imf_context.c: In function ‘ecore_imf_context_event_callback_del’:
ecore_imf_context.c:1099:9: warning: ‘return’ with no value, in function returning non-void
ecore_imf_context.c:1109:26: warning: initialization discards qualifiers from pointer target type
SVN revision: 67585
Long time ago, in
http://www.mail-archive.com/enlightenment-devel@lists.sourceforge.net/msg32795.html
mail thread and IRC,
I talked with about problem of asynchronous event API such as
ecore_imf_context_commit_event_add,
ecore_imf_context_preedit_changed_event_add, so on.
In short, The problem is that key event and text_set APIs are processed
immediately, but commit event and preedit changed event is processed
asynchronously because those APIs add each event to ecore event queue.
To fix these problems, I've decided to create synchronous event APIs such
as ecore_imf_context_event_callback_add, del and call.
For considering compatibility, sync and async event callback functions are
used in xim and scim immodule.
SVN revision: 67290
Hello e people, i modified some comments to get less doxygen
warnings/errors.
Signed-Off-By: Guillaume Friloux <guillaume.friloux@asp64.com>
SVN revision: 67270
cannot depend on the order in which the interfaces are given to us, so
we cannot create the data_device until we have both the input device
and the data_device_manager. Fix that.
Add more dnd code (not complete yet because frankly, the way Wayland
handles dnd & selection code is crappy, stupid, and difficult to
implement).
SVN revision: 67247
divide each new functions to two part
which create ecore evas and create socket for upper layer.
socket: new and listen
plug: new and connect
SVN revision: 67238