From: Mike Blumenkrantz Date: Thu, 9 Jul 2015 19:01:50 +0000 (-0400) Subject: unify crash handler functions X-Git-Tag: upstream/0.20.0~593 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=399e3c79ce7f8d9cf08a52ebf46823ed21ebe9b7;p=platform%2Fupstream%2Fenlightenment.git unify crash handler functions --- diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index ed31378..d423b0f 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -63,11 +63,8 @@ _e_write_safe_int(int fd, const char *buf, size_t size) #endif -/* a tricky little devil, requires e and it's libs to be built - * with the -rdynamic flag to GCC for any sort of decent output. - */ -E_API void -e_sigseg_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) +static void +_e_crash(void) { #ifdef HAVE_WAYLAND_ONLY const Eina_List *list, *l, *ll; @@ -94,6 +91,15 @@ e_sigseg_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNU #endif } +/* a tricky little devil, requires e and it's libs to be built + * with the -rdynamic flag to GCC for any sort of decent output. + */ +E_API void +e_sigseg_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) +{ + _e_crash(); +} + E_API void e_sigill_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) { @@ -115,83 +121,17 @@ e_sigill_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNU E_API void e_sigfpe_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) { -#ifdef HAVE_WAYLAND_ONLY - const Eina_List *list, *l, *ll; - Ecore_Drm_Device *dev; - - list = ecore_drm_devices_get(); - EINA_LIST_FOREACH_SAFE(list, l, ll, dev) - { - ecore_drm_inputs_destroy(dev); - ecore_drm_sprites_destroy(dev); - ecore_drm_device_close(dev); - ecore_drm_launcher_disconnect(dev); - ecore_drm_device_free(dev); - } - - ecore_drm_shutdown(); -#else - _e_x_composite_shutdown(); - ecore_x_pointer_ungrab(); - ecore_x_keyboard_ungrab(); - ecore_x_ungrab(); - ecore_x_sync(); - e_alert_show(); -#endif + _e_crash(); } E_API void e_sigbus_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) { -#ifdef HAVE_WAYLAND_ONLY - const Eina_List *list, *l, *ll; - Ecore_Drm_Device *dev; - - list = ecore_drm_devices_get(); - EINA_LIST_FOREACH_SAFE(list, l, ll, dev) - { - ecore_drm_inputs_destroy(dev); - ecore_drm_sprites_destroy(dev); - ecore_drm_device_close(dev); - ecore_drm_launcher_disconnect(dev); - ecore_drm_device_free(dev); - } - - ecore_drm_shutdown(); -#else - _e_x_composite_shutdown(); - ecore_x_pointer_ungrab(); - ecore_x_keyboard_ungrab(); - ecore_x_ungrab(); - ecore_x_sync(); - e_alert_show(); -#endif + _e_crash(); } E_API void e_sigabrt_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNUSED) { -#ifdef HAVE_WAYLAND_ONLY - const Eina_List *list, *l, *ll; - Ecore_Drm_Device *dev; - - list = ecore_drm_devices_get(); - EINA_LIST_FOREACH_SAFE(list, l, ll, dev) - { - ecore_drm_inputs_destroy(dev); - ecore_drm_sprites_destroy(dev); - ecore_drm_device_close(dev); - ecore_drm_launcher_disconnect(dev); - ecore_drm_device_free(dev); - } - - ecore_drm_shutdown(); -#else - _e_x_composite_shutdown(); - ecore_x_pointer_ungrab(); - ecore_x_keyboard_ungrab(); - ecore_x_ungrab(); - ecore_x_sync(); - e_alert_show(); -#endif + _e_crash(); }