Fix RecursionTrap (RescursionTrap) in UnhandledExceptionFilter to allow more than 2 exceptions beeing handled by the toplevel filter.

svn path=/trunk/; revision=11609
This commit is contained in:
Gregor Anich 2004-11-10 01:07:45 +00:00
parent 2950511d3e
commit 8b3a000e7b

View file

@ -1,4 +1,4 @@
/* $Id: except.c,v 1.17 2004/09/26 16:54:53 royce Exp $ /* $Id: except.c,v 1.18 2004/11/10 01:07:45 blight Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries * PROJECT: ReactOS system libraries
@ -93,7 +93,7 @@ UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
DWORD RetValue; DWORD RetValue;
HANDLE DebugPort = NULL; HANDLE DebugPort = NULL;
NTSTATUS ErrCode; NTSTATUS ErrCode;
static int RescursionTrap = 3; static int RecursionTrap = 3;
#if 0 #if 0
if (ExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_ACCESS_VIOLATION && if (ExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_ACCESS_VIOLATION &&
@ -106,7 +106,7 @@ UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
} }
#endif #endif
if (--RescursionTrap > 0) if (RecursionTrap > 0)
{ {
/* Is there a debugger running ? */ /* Is there a debugger running ? */
ErrCode = NtQueryInformationProcess(NtCurrentProcess(), ProcessDebugPort, ErrCode = NtQueryInformationProcess(NtCurrentProcess(), ProcessDebugPort,
@ -135,7 +135,7 @@ UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
} }
} }
if (RescursionTrap >= 0 && (GetErrorMode() & SEM_NOGPFAULTERRORBOX) == 0) if (RecursionTrap-- > 0 && (GetErrorMode() & SEM_NOGPFAULTERRORBOX) == 0)
{ {
#ifdef _X86_ #ifdef _X86_
PULONG Frame; PULONG Frame;