(svn r653) Prevent SDL parachute from catching SIGSEGV and SIGFPE (pasky)

This commit is contained in:
tron 2004-11-17 08:11:24 +00:00
parent 2760ed80fd
commit 0086bb9d06
1 changed files with 15 additions and 0 deletions

15
sdl.c
View File

@ -119,6 +119,17 @@ static void SdlAbort(int sig)
{
/* Own hand-made parachute for the cases of failed assertions. */
SDL_CALL SDL_Quit();
switch (sig) {
case SIGSEGV:
case SIGFPE:
signal(sig, SIG_DFL);
raise(sig);
break;
default:
break;
}
}
#endif
@ -141,6 +152,8 @@ static char *SdlOpen(uint32 x)
#ifdef UNIX
signal(SIGABRT, SdlAbort);
signal(SIGSEGV, SdlAbort);
signal(SIGFPE, SdlAbort);
#endif
return NULL;
@ -154,6 +167,8 @@ static void SdlClose(uint32 x)
SDL_CALL SDL_Quit();
#ifdef UNIX
signal(SIGABRT, SIG_DFL);
signal(SIGSEGV, SIG_DFL);
signal(SIGFPE, SIG_DFL);
#endif
}
}