PowerPC and Exception

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

I am not sure of this one. I am in fact asking for some comment on this code. I don't understand the frame handler. On Mac OS X/PowerPC commenting out this code helps a lots. At every exceptions I get an errror:
err:seh:EXC_DefaultHandling Exception frame is not in stack limits => unable to dispatch exception
But why do we need to have a Exception frame stack limit? Is that a processor stack we are speaking about?
By the way why is there a lot of pointers check with? I think it is system dependent:
(int)frame & 3
At least the patch seems to work fine on Mac OS X, exception are now caught normally.

Thanks,

Pierre

ChangeLog:
- Don't bother about stack limits on PowerPC


Index: dlls/ntdll/exception.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/exception.c,v
retrieving revision 1.55
diff -u -r1.55 exception.c
--- dlls/ntdll/exception.c	15 Jul 2003 20:53:40 -0000	1.55
+++ dlls/ntdll/exception.c	21 Jul 2003 12:10:11 -0000
@@ -200,6 +200,7 @@
     nested_frame = NULL;
     while (frame != (PEXCEPTION_FRAME)0xFFFFFFFF)
     {
+#ifndef __powerpc__
         /* Check frame address */
         if (((void*)frame < NtCurrentTeb()->stack_low) ||
             ((void*)(frame+1) > NtCurrentTeb()->stack_top) ||
@@ -208,6 +209,7 @@
             rec->ExceptionFlags |= EH_STACK_INVALID;
             break;
         }
+#endif /* __powerpc__ */
 
         /* Call handler */
         res = EXC_CallHandler( rec, frame, context, &dispatch, frame->Handler, EXC_RaiseHandler );

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux