mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-11 06:18:16 +02:00
* eoutofmemory and einvalidpointer fix
This commit is contained in:
parent
675b517bbe
commit
47a24b5da6
@ -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!
|
||||
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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+.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user