From 02a46a6547268da98c92beef81bd2406ea22be08 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 21 Dec 1998 14:28:20 +0000 Subject: [PATCH] * HandleError -> HandleErrorFrame to avoid problem in assembler code in i386.inc (call to overloaded function in assembler block !) --- rtl/i386/i386.inc | 9 +++++++-- rtl/inc/system.inc | 15 ++++++++++----- rtl/win32/syswin32.pp | 27 ++++++++++++++++----------- 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/rtl/i386/i386.inc b/rtl/i386/i386.inc index 062dda3176..c33a90a02d 100644 --- a/rtl/i386/i386.inc +++ b/rtl/i386/i386.inc @@ -688,7 +688,7 @@ begin begin l:=InOutRes; InOutRes:=0; - HandleError(l,get_frame); + HandleErrorFrame(l,get_frame); end; asm popal @@ -699,7 +699,12 @@ end; { $Log$ - Revision 1.36 1998-12-18 17:21:32 peter + Revision 1.37 1998-12-21 14:28:20 pierre + * HandleError -> HandleErrorFrame to avoid problem in + assembler code in i386.inc + (call to overloaded function in assembler block !) + + Revision 1.36 1998/12/18 17:21:32 peter * fixed io-error handling Revision 1.35 1998/12/15 22:42:53 peter diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index ccf62689e5..e4902a4f72 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -27,7 +27,7 @@ {$i textrec.inc} Procedure HandleError (Errno : Longint); forward; -Procedure HandleError (Errno : longint;frame : longint); forward; +Procedure HandleErrorFrame (Errno : longint;frame : longint); forward; type FileFunc = Procedure(var t : TextRec); @@ -277,7 +277,7 @@ end; procedure int_overflow;[public,alias:'FPC_OVERFLOW']; begin - HandleError(215,get_frame); + HandleErrorFrame(215,get_frame); end; @@ -298,7 +298,7 @@ end; Init / Exit / ExitProc *****************************************************************************} -Procedure HandleError (Errno : longint;frame : longint); +Procedure HandleErrorFrame (Errno : longint;frame : longint); { Procedure to handle internal errors, i.e. not user-invoked errors Internal function should ALWAYS call HandleError instead of RunError. @@ -324,7 +324,7 @@ Procedure HandleError (Errno : longint);[public,alias : 'FPC_HANDLEERROR']; Internal function should ALWAYS call HandleError instead of RunError. } begin - HandleError(Errno,get_frame); + HandleErrorFrame(Errno,get_frame); end; @@ -468,7 +468,12 @@ end; { $Log$ - Revision 1.48 1998-12-18 17:21:33 peter + Revision 1.49 1998-12-21 14:28:21 pierre + * HandleError -> HandleErrorFrame to avoid problem in + assembler code in i386.inc + (call to overloaded function in assembler block !) + + Revision 1.48 1998/12/18 17:21:33 peter * fixed io-error handling Revision 1.47 1998/12/15 22:43:03 peter diff --git a/rtl/win32/syswin32.pp b/rtl/win32/syswin32.pp index 4c4ec6fa9d..5b137f489c 100644 --- a/rtl/win32/syswin32.pp +++ b/rtl/win32/syswin32.pp @@ -863,33 +863,33 @@ type pexception_record = ^exception_record; syswin32_i386_exception_handler:=ExceptionContinueSearch; case excep^.ExceptionRecord^.ExceptionCode of EXCEPTION_ACCESS_VIOLATION : - Handleerror(216,frame); + HandleErrorFrame(216,frame); { EXCEPTION_BREAKPOINT = $80000003; EXCEPTION_DATATYPE_MISALIGNMENT = $80000002; EXCEPTION_SINGLE_STEP = $80000004; } EXCEPTION_ARRAY_BOUNDS_EXCEEDED : - Handleerror(201,frame); + HandleErrorFrame(201,frame); { EXCEPTION_FLT_DENORMAL_OPERAND = $c000008d; } EXCEPTION_FLT_DIVIDE_BY_ZERO : - Handleerror(200,frame); + HandleErrorFrame(200,frame); {EXCEPTION_FLT_INEXACT_RESULT = $c000008f; EXCEPTION_FLT_INVALID_OPERATION = $c0000090;} EXCEPTION_FLT_OVERFLOW : - Handleerror(205,frame); + HandleErrorFrame(205,frame); EXCEPTION_FLT_STACK_CHECK : - Handleerror(207,frame); + HandleErrorFrame(207,frame); { EXCEPTION_FLT_UNDERFLOW : - Handleerror(206,frame); should be accepted as zero !! } + HandleErrorFrame(206,frame); should be accepted as zero !! } EXCEPTION_INT_DIVIDE_BY_ZERO : - Handleerror(200,frame); + HandleErrorFrame(200,frame); EXCEPTION_INT_OVERFLOW : - Handleerror(215,frame); + HandleErrorFrame(215,frame); {EXCEPTION_INVALID_HANDLE = $c0000008; EXCEPTION_PRIV_INSTRUCTION = $c0000096; EXCEPTION_NONCONTINUABLE_EXCEPTION = $c0000025; EXCEPTION_NONCONTINUABLE = $1;} EXCEPTION_STACK_OVERFLOW : - Handleerror(202,frame); + HandleErrorFrame(202,frame); {EXCEPTION_INVALID_DISPOSITION = $c0000026;} end; end; @@ -951,7 +951,12 @@ end. { $Log$ - Revision 1.29 1998-12-15 22:43:14 peter + Revision 1.30 1998-12-21 14:28:23 pierre + * HandleError -> HandleErrorFrame to avoid problem in + assembler code in i386.inc + (call to overloaded function in assembler block !) + + Revision 1.29 1998/12/15 22:43:14 peter * removed temp symbols Revision 1.28 1998/12/09 17:57:33 pierre @@ -960,7 +965,7 @@ end. Revision 1.27 1998/12/01 14:00:08 pierre + added conversion from exceptions into run time error (only if syswin32 compiled with -ddebug for now !) - * added HandleError(errno,frame) + * added HandleErrorFrame(errno,frame) where you specify the frame needed for win32 exception handling