Преглед на файлове

* call HandleErrorAddrFrame on return of signal handler, reduces amount of code called within signal handler (for linux/i386)

git-svn-id: trunk@8092 -
micha преди 18 години
родител
ревизия
0e64718cb2
променени са 1 файла, в които са добавени 6 реда и са изтрити 1 реда
  1. 6 1
      rtl/linux/i386/sighnd.inc

+ 6 - 1
rtl/linux/i386/sighnd.inc

@@ -79,6 +79,11 @@ begin
   reenable_signal(sig);
 { give runtime error at the position where the signal was raised }
   if res<>0 then
-    HandleErrorAddrFrame(res,pointer(UContext^.uc_mcontext.eip),pointer(UContext^.uc_mcontext.ebp));
+  begin
+    ucontext^.uc_mcontext.eax := res;
+    ucontext^.uc_mcontext.edx := ucontext^.uc_mcontext.eip;
+    ucontext^.uc_mcontext.ecx := ucontext^.uc_mcontext.ebp;
+    ucontext^.uc_mcontext.eip := ptruint(@HandleErrorAddrFrame);
+  end;
 end;