0.9.2.31:
[sbcl.git] / src / runtime / x86-arch.c
index fab9d1f..a62d204 100644 (file)
@@ -85,7 +85,7 @@ void arch_skip_instruction(os_context_t *context)
            vlen = *(char*)(*os_context_pc_addr(context))++;
            /* Skip Lisp error arg data bytes. */
            while (vlen-- > 0) {
-               ( (char*)(*os_context_pc_addr(context)) )++;
+               ++*os_context_pc_addr(context);
            }
            break;
 
@@ -193,7 +193,6 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
     int code = info->si_code;
     os_context_t *context = (os_context_t*)void_context;
     unsigned int trap;
-    sigset_t ss;
 
     if (single_stepping && (signal==SIGTRAP))
     {
@@ -244,10 +243,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
     case trap_PendingInterrupt:
        FSHOW((stderr, "/<trap pending interrupt>\n"));
        arch_skip_instruction(context);
-       sigemptyset(&ss);
-       sigaddset(&ss,SIGTRAP);
-       sigprocmask(SIG_UNBLOCK,&ss,0);
-       interrupt_handle_pending(context);
+        interrupt_handle_pending(context);
        break;
 
     case trap_Halt:
@@ -265,12 +261,12 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context)
        break;
 
     case trap_Breakpoint:
-       (char*)(*os_context_pc_addr(context)) -= 1;
+       --*os_context_pc_addr(context);
        handle_breakpoint(signal, info, context);
        break;
 
     case trap_FunEndBreakpoint:
-       (char*)(*os_context_pc_addr(context)) -= 1;
+       --*os_context_pc_addr(context);
        *os_context_pc_addr(context) =
            (int)handle_fun_end_breakpoint(signal, info, context);
        break;