From 92dbff0c578ef040134d172229fc694a264b0b0f Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Wed, 27 Dec 2017 11:35:45 +0000 Subject: [PATCH] fcl-passrc: fixed compile git-svn-id: trunk@37831 - --- packages/fcl-passrc/src/pasresolver.pp | 31 +++++++++++++++++++++++++- packages/fcl-passrc/src/pastree.pp | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/fcl-passrc/src/pasresolver.pp b/packages/fcl-passrc/src/pasresolver.pp index b6452abf66..74fe0b3bfb 100644 --- a/packages/fcl-passrc/src/pasresolver.pp +++ b/packages/fcl-passrc/src/pasresolver.pp @@ -623,7 +623,7 @@ type DirectAncestor: TPasType; // TPasClassType or TPasAliasType or TPasTypeAliasType DefaultProperty: TPasProperty; Flags: TPasClassScopeFlags; - AbstractProcs: array of TPasProcedure; + AbstractProcs: TArrayOfPasProcedure; destructor Destroy; override; function FindIdentifier(const Identifier: String): TPasIdentifier; override; procedure IterateElements(const aName: string; StartScope: TPasScope; @@ -4129,6 +4129,35 @@ procedure TPasResolver.FinishMethodDeclHeader(Proc: TPasProcedure); Proc.Visibility:=OverloadProc.Visibility; end; + {$IF FPC_FULLVERSION<30101} + procedure Delete(var A: TArrayOfPasProcedure; Index, Count: integer); overload; + var + i: Integer; + begin + if Index<0 then + RaiseInternalError(20171227121538); + if Index+Count>length(A) then + RaiseInternalError(20171227121156); + for i:=Index+Count to length(A)-1 do + A[i-Count]:=A[i]; + SetLength(A,length(A)-Count); + end; + + procedure Insert(Item: TPasProcedure; A: TArrayOfPasProcedure; Index: integer); overload; + var + i: Integer; + begin + if Index<0 then + RaiseInternalError(20171227121544); + if Index>length(A) then + RaiseInternalError(20171227121558); + SetLength(A,length(A)+1); + for i:=length(A)-1 downto Index+1 do + A[i]:=A[i-1]; + A[Index]:=Item; + end; + {$ENDIF} + var Abort: boolean; ClassScope: TPasClassScope; diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 0847faef4a..624895467e 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -966,6 +966,8 @@ type property MessageType : TProcedureMessageType Read FMessageType Write FMessageType; end; + TArrayOfPasProcedure = array of TPasProcedure; + TPasFunction = class(TPasProcedure) private function GetFT: TPasFunctionType; inline;