* eoutofmemory and einvalidpointer fix

This commit is contained in:
peter 2001-06-03 15:18:01 +00:00
parent 675b517bbe
commit 47a24b5da6
8 changed files with 66 additions and 25 deletions

View File

@ -254,12 +254,14 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
end.
{
$Log$
Revision 1.1 2001-06-02 19:26:03 peter
Revision 1.2 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.1 2001/06/02 19:26:03 peter
* BeOS target!
}

View File

@ -645,12 +645,14 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
end.
{
$Log$
Revision 1.4 2001-02-20 22:14:19 peter
Revision 1.5 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.4 2001/02/20 22:14:19 peter
* merged getenvironmentvariable
Revision 1.3 2000/08/30 06:29:19 michael

View File

@ -34,7 +34,7 @@ TYPE
EntryP: PNWDirEnt; { and readdir }
Magic : WORD; { to avoid abends with uninitialized TSearchRec }
END;
{ Include platform independent interface part }
@ -475,13 +475,15 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
end.
{
$Log$
Revision 1.3 2001-04-16 18:39:50 florian
Revision 1.4 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.3 2001/04/16 18:39:50 florian
* updates from Armin commited
Revision 1.2 2001/04/11 14:17:00 florian

View File

@ -87,12 +87,17 @@ type
public
ErrorCode : Longint;
end;
EInvalidPointer = Class(Exception);
EOutOfMemory = Class(Exception);
EHeapMemoryError = class(Exception)
protected
AllowFree : boolean;
procedure FreeInstance;override;
end;
EInvalidPointer = Class(EHeapMemoryError);
EOutOfMemory = Class(EHeapMemoryError);
EAccessViolation = Class(Exception);
EInvalidCast = Class(Exception);
{ String conversion errors }
EConvertError = class(Exception);
@ -136,13 +141,16 @@ Type
{$i filutilh.inc}
{ Read disk function declarations }
{$i diskh.inc}
{
$Log$
Revision 1.8 2001-02-20 22:14:19 peter
Revision 1.9 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.8 2001/02/20 22:14:19 peter
* merged getenvironmentvariable
Revision 1.7 2001/01/18 22:09:09 michael

View File

@ -108,6 +108,12 @@
end;
procedure EHeapMemoryError.FreeInstance;
begin
if AllowFree then
inherited FreeInstance;
end;
{$ifopt S+}
{$define STACKCHECK_WAS_ON}
@ -210,12 +216,24 @@ begin
ExceptProc:=@CatchUnhandledException;
// Create objects that may have problems when there is no memory.
OutOfMemory:=EOutOfMemory.Create(SOutOfMemory);
OutOfMemory.AllowFree:=false;
InvalidPointer:=EInvalidPointer.Create(SInvalidPointer);
InvalidPointer.AllowFree:=false;
AssertErrorProc:=@AssertErrorHandler;
ErrorProc:=@RunErrorToExcept;
OnShowException:=Nil;
end;
Procedure DoneExceptions;
begin
OutOfMemory.AllowFree:=true;
OutOfMemory.Free;
InValidPointer.AllowFree:=true;
InValidPointer.Free;
end;
{ Exception handling routines }
function ExceptObject: TObject;
@ -290,7 +308,10 @@ end;
{
$Log$
Revision 1.3 2000-11-23 11:04:26 sg
Revision 1.4 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.3 2000/11/23 11:04:26 sg
* Protected some Move()'s by 'if' clauses so that the Move won't be
executed when the length would be 0. Otherwise, the corresponding
routines might get an RTE when compiled with $R+.

View File

@ -769,13 +769,15 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
end.
{
$Log$
Revision 1.11 2001-05-21 20:50:19 hajny
Revision 1.12 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.11 2001/05/21 20:50:19 hajny
* silly mistyping corrected
Revision 1.10 2001/05/20 18:40:33 hajny

View File

@ -460,13 +460,15 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
end.
{
$Log$
Revision 1.8 2001-02-20 22:19:38 peter
Revision 1.9 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.8 2001/02/20 22:19:38 peter
* always test before commiting after merging, linux -> unix change
Revision 1.7 2001/02/20 22:14:19 peter

View File

@ -673,14 +673,16 @@ Initialization
end;
Finalization
OutOfMemory.Free;
InValidPointer.Free;
DoneExceptions;
if kernel32dll<>0 then
FreeLibrary(kernel32dll);
end.
{
$Log$
Revision 1.8 2001-05-20 12:08:36 peter
Revision 1.9 2001-06-03 15:18:01 peter
* eoutofmemory and einvalidpointer fix
Revision 1.8 2001/05/20 12:08:36 peter
* fixed filesearch
Revision 1.7 2001/04/16 10:57:05 peter