evas/callbacks: Prevent post_event_callback_call recursion.
authorRafael Antognolli <rafael.antognolli@intel.com>
Thu, 6 Jun 2013 21:35:12 +0000 (18:35 -0300)
committerRafael Antognolli <rafael.antognolli@intel.com>
Thu, 6 Jun 2013 21:42:16 +0000 (18:42 -0300)
commit4b5d52fca12b74871f14883566b29ef274eaf860
treece6c4a2de5022dc8efe57be686dbd239536f52d9
parentf1ba71147e6522d5f5bce48e81bf5f2dab3068d6
evas/callbacks: Prevent post_event_callback_call recursion.

If this function is called recursively, it will free the list of post
callbacks before the list stops being used, which will cause a segfault.

The only place where this seems to happen is on
https://phab.enlightenment.org/T124, probably due to the extensive mouse
events which are launched in an unexpected way.

This bug started happening after commit
164cc07237395f8fe6efa465e4f0c0c4863f78ed, where the
_elm_scroll_page_x_get() started being called by a post_event callback,
and forcing an edje recalc. This recalc triggered another post_event
callback, thus causing the mentioned segfault.

If there's a better way to prevent this from happening, please change
the mentioned code.
src/lib/evas/canvas/evas_callbacks.c