mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 09:26:15 +02:00
* force stackframes for foreach,firstthat,lastthat
git-svn-id: trunk@4967 -
This commit is contained in:
parent
1de2f94b28
commit
59e84ac06d
@ -1902,6 +1902,12 @@ END;
|
|||||||
{--TCollection--------------------------------------------------------------}
|
{--TCollection--------------------------------------------------------------}
|
||||||
{ LastThat -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
{ LastThat -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$IFOPT W-}
|
||||||
|
{$DEFINE STACKFRAME_OFF}
|
||||||
|
{$W+}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
FUNCTION TCollection.LastThat (Test: Pointer): Pointer;
|
FUNCTION TCollection.LastThat (Test: Pointer): Pointer;
|
||||||
VAR I: LongInt;
|
VAR I: LongInt;
|
||||||
|
|
||||||
@ -1917,6 +1923,7 @@ BEGIN
|
|||||||
LastThat := Nil; { None passed test }
|
LastThat := Nil; { None passed test }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
||||||
{--TCollection--------------------------------------------------------------}
|
{--TCollection--------------------------------------------------------------}
|
||||||
{ FirstThat -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
{ FirstThat -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -1933,6 +1940,11 @@ BEGIN
|
|||||||
FirstThat := Nil; { None passed test }
|
FirstThat := Nil; { None passed test }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
{$IFDEF STACKFRAME_OFF}
|
||||||
|
{$UNDEF STACKFRAME_OFF}
|
||||||
|
{$W-}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{--TCollection--------------------------------------------------------------}
|
{--TCollection--------------------------------------------------------------}
|
||||||
{ Pack -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
{ Pack -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -2034,12 +2046,22 @@ END;
|
|||||||
{--TCollection--------------------------------------------------------------}
|
{--TCollection--------------------------------------------------------------}
|
||||||
{ ForEach -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
{ ForEach -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$IFOPT W-}
|
||||||
|
{$DEFINE STACKFRAME_OFF}
|
||||||
|
{$W+}
|
||||||
|
{$ENDIF}
|
||||||
PROCEDURE TCollection.ForEach (Action: Pointer);
|
PROCEDURE TCollection.ForEach (Action: Pointer);
|
||||||
VAR I: LongInt;
|
VAR I: LongInt;
|
||||||
BEGIN
|
BEGIN
|
||||||
For I := 1 To Count Do { Up from first item }
|
For I := 1 To Count Do { Up from first item }
|
||||||
CallPointerLocal(Action,get_caller_frame(get_frame),Items^[I-1]); { Call with each item }
|
CallPointerLocal(Action,get_caller_frame(get_frame),Items^[I-1]); { Call with each item }
|
||||||
END;
|
END;
|
||||||
|
{$IFDEF STACKFRAME_OFF}
|
||||||
|
{$UNDEF STACKFRAME_OFF}
|
||||||
|
{$W-}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
{--TCollection--------------------------------------------------------------}
|
{--TCollection--------------------------------------------------------------}
|
||||||
{ SetLimit -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
{ SetLimit -> Platforms DOS/DPMI/WIN/OS2 - Checked 22May96 LdB }
|
||||||
|
Loading…
Reference in New Issue
Block a user