[fpc-devel] TList slowness in classes

Mattias Gaertner nc-gaertnma at netcologne.de
Fri Dec 24 12:04:22 CET 2004


On Fri, 24 Dec 2004 11:49:10 +0100 (W. Europe Standard Time)
Michael Van Canneyt <michael.vancanneyt at wisa.be> wrote:

> 
> 
> On Fri, 24 Dec 2004, Mattias Gaertner wrote:
> 
> > On Fri, 24 Dec 2004 10:56:24 +0100 (W. Europe Standard Time)
> > Michael Van Canneyt <michael.vancanneyt at wisa.be> wrote:
> >
> > > > If the answer is yes, then maybe it's safe to compile parts of FPC
> > > > sources in lists.inc (like TList.Get) inside {$IMPLICITEXCEPTIONS OFF} ?
> >
> > Why not put it into a sub proc:
> >
> > function TList.Get(Index: Integer): Pointer;
> >
> >   procedure RaiseIndexError;
> >   begin
> >     Error(SListIndexError,Index);
> >   end;
> >
> > begin
> >   If (Index<0) or (Index>=FCount) then
> >     RaiseIndexError;
> >   Result:=FList^[Index];
> > end;
> >
> 
> The compiler detects that the sub can raise an exception.

And creates the implicit exception frame only in RaiseIndexError.

Mattias




More information about the fpc-devel mailing list