kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=c9ad641ba8316d8cd8d7d2436c496fcb2835dc62
commit c9ad641ba8316d8cd8d7d2436c496fcb2835dc62 Author: Kim Woelders <[email protected]> Date: Tue Mar 26 18:37:24 2019 +0100 Fix restart after choosing Restart in GSOD on e.g. segv Mode.wm.exit_now should be set before calling SessionExit() which may happen inside Alert(). --- src/handlers.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/handlers.c b/src/handlers.c index fc301858..9870582a 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2015 Kim Woelders + * Copyright (C) 2004-2019 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -61,6 +61,7 @@ SignalHandler(int sig) break; case SIGILL: + Mode.wm.exit_now = 1; Alert(_("Enlightenment performed an Illegal Instruction.\n" "\n" "This most likely is due to you having installed an run a\n" "binary of Enlightenment that was compiled for a make or model\n" @@ -71,6 +72,7 @@ SignalHandler(int sig) goto do_abort; case SIGFPE: + Mode.wm.exit_now = 1; Alert(_("Enlightenment caused a Floating Point Exception.\n" "\n" "This means that Enlightenment or support library routines it calls\n" "have performed an illegal mathematical operation (most likely\n" @@ -83,6 +85,7 @@ SignalHandler(int sig) goto do_abort; case SIGSEGV: + Mode.wm.exit_now = 1; Alert(_("Enlightenment caused Segment Violation (Segfault)\n" "\n" "This means that Enlightenment or support library routines it calls\n" "have accessed areas of your system's memory that they are not\n" @@ -95,6 +98,7 @@ SignalHandler(int sig) goto do_abort; case SIGBUS: + Mode.wm.exit_now = 1; Alert(_("Enlightenment caused Bus Error.\n" "\n" "It is suggested you check your hardware and OS installation.\n" "It is highly unusual to cause Bus Errors on operational\n" @@ -108,7 +112,6 @@ SignalHandler(int sig) #if 0 /* Avoid X-ops? */ disp = NULL; #endif - Mode.wm.exit_now = 1; SessionExit(EEXIT_ERROR, NULL); abort(); break; --
