Alexandre Julliard : ntdll: Remove no longer needed function argument from setup_raise_exception() on i386.

Alexandre Julliard julliard at winehq.org
Thu Sep 12 16:28:57 CDT 2019


Module: wine
Branch: master
Commit: d9ec920fd9234a1cc257264bae5a5a41d3a760b2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d9ec920fd9234a1cc257264bae5a5a41d3a760b2

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Sep 12 21:02:29 2019 +0200

ntdll: Remove no longer needed function argument from setup_raise_exception() on i386.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/signal_i386.c | 56 +++++++++++++++++++++++-------------------------
 1 file changed, 27 insertions(+), 29 deletions(-)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 11ef7c393a..8876790195 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -422,9 +422,9 @@ typedef struct trapframe ucontext_t;
 /* stack layout when calling an exception raise function */
 struct stack_layout
 {
-    void             *ret_addr;      /* return address from raise_func */
-    EXCEPTION_RECORD *rec_ptr;       /* first arg for raise_func */
-    CONTEXT          *context_ptr;   /* second arg for raise_func */
+    void             *ret_addr;      /* return address from raise_generic_exception */
+    EXCEPTION_RECORD *rec_ptr;       /* first arg for raise_generic_exception */
+    CONTEXT          *context_ptr;   /* second arg for raise_generic_exception */
     CONTEXT           context;
     EXCEPTION_RECORD  rec;
     DWORD             ebp;
@@ -804,8 +804,6 @@ static int solaris_sigaction( int sig, const struct sigaction *new, struct sigac
 
 #endif
 
-typedef void (WINAPI *raise_func)( EXCEPTION_RECORD *rec, CONTEXT *context );
-
 extern void clear_alignment_flag(void);
 __ASM_GLOBAL_FUNC( clear_alignment_flag,
                    "pushfl\n\t"
@@ -1852,15 +1850,29 @@ static struct stack_layout *setup_exception( ucontext_t *sigcontext )
 }
 
 
+/**********************************************************************
+ *		raise_generic_exception
+ *
+ * Generic raise function for exceptions that don't need special treatment.
+ */
+static void WINAPI raise_generic_exception( EXCEPTION_RECORD *rec, CONTEXT *context )
+{
+    NTSTATUS status;
+
+    status = NtRaiseException( rec, context, TRUE );
+    raise_status( status, rec );
+}
+
+
 /***********************************************************************
  *           setup_raise_exception
  *
  * Change context to setup a call to a raise exception function.
  */
-static void setup_raise_exception( ucontext_t *sigcontext, struct stack_layout *stack, raise_func func )
+static void setup_raise_exception( ucontext_t *sigcontext, struct stack_layout *stack )
 {
     ESP_sig(sigcontext) = (DWORD)stack;
-    EIP_sig(sigcontext) = (DWORD)func;
+    EIP_sig(sigcontext) = (DWORD)raise_generic_exception;
     /* clear single-step, direction, and align check flag */
     EFL_sig(sigcontext) &= ~(0x100|0x400|0x40000);
     CS_sig(sigcontext)  = wine_get_cs();
@@ -1869,8 +1881,8 @@ static void setup_raise_exception( ucontext_t *sigcontext, struct stack_layout *
     FS_sig(sigcontext)  = wine_get_fs();
     GS_sig(sigcontext)  = wine_get_gs();
     SS_sig(sigcontext)  = wine_get_ss();
-    stack->ret_addr     = (void *)0xdeadbabe;  /* raise_func must not return */
-    stack->rec_ptr      = &stack->rec;         /* arguments for raise_func */
+    stack->ret_addr     = (void *)0xdeadbabe;  /* raise_generic_exception must not return */
+    stack->rec_ptr      = &stack->rec;         /* arguments for raise_generic_exception */
     stack->context_ptr  = &stack->context;
 }
 
@@ -1900,20 +1912,6 @@ static inline DWORD get_fpu_code( const CONTEXT *context )
 }
 
 
-/**********************************************************************
- *		raise_generic_exception
- *
- * Generic raise function for exceptions that don't need special treatment.
- */
-static void WINAPI raise_generic_exception( EXCEPTION_RECORD *rec, CONTEXT *context )
-{
-    NTSTATUS status;
-
-    status = NtRaiseException( rec, context, TRUE );
-    raise_status( status, rec );
-}
-
-
 /***********************************************************************
  *           handle_interrupt
  *
@@ -1945,7 +1943,7 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
         stack->rec.ExceptionInformation[0] = stack->context.Eax;
         stack->rec.ExceptionInformation[1] = stack->context.Ecx;
         stack->rec.ExceptionInformation[2] = stack->context.Edx;
-        setup_raise_exception( sigcontext, stack, raise_generic_exception );
+        setup_raise_exception( sigcontext, stack );
         return TRUE;
     default:
         return FALSE;
@@ -2068,7 +2066,7 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
         break;
     }
 done:
-    setup_raise_exception( context, stack, raise_generic_exception );
+    setup_raise_exception( context, stack );
 }
 
 
@@ -2110,7 +2108,7 @@ static void trap_handler( int signal, siginfo_t *siginfo, void *sigcontext )
         stack->rec.ExceptionInformation[2] = 0; /* FIXME */
         break;
     }
-    setup_raise_exception( context, stack, raise_generic_exception );
+    setup_raise_exception( context, stack );
 }
 
 
@@ -2156,7 +2154,7 @@ static void fpe_handler( int signal, siginfo_t *siginfo, void *sigcontext )
         break;
     }
 
-    setup_raise_exception( context, stack, raise_generic_exception );
+    setup_raise_exception( context, stack );
 }
 
 
@@ -2175,7 +2173,7 @@ static void int_handler( int signal, siginfo_t *siginfo, void *sigcontext )
     {
         struct stack_layout *stack = setup_exception( sigcontext );
         stack->rec.ExceptionCode = CONTROL_C_EXIT;
-        setup_raise_exception( sigcontext, stack, raise_generic_exception );
+        setup_raise_exception( sigcontext, stack );
     }
 }
 
@@ -2189,7 +2187,7 @@ static void abrt_handler( int signal, siginfo_t *siginfo, void *sigcontext )
     struct stack_layout *stack = setup_exception( sigcontext );
     stack->rec.ExceptionCode  = EXCEPTION_WINE_ASSERTION;
     stack->rec.ExceptionFlags = EH_NONCONTINUABLE;
-    setup_raise_exception( sigcontext, stack, raise_generic_exception );
+    setup_raise_exception( sigcontext, stack );
 }
 
 




More information about the wine-cvs mailing list