From cca4d8ce974490419d0423baa817a8c4ff3c94d3 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 7 Aug 2004 15:24:45 +0000 Subject: [PATCH] * initial revision --- tests/webtbs/tw3214.pas | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/webtbs/tw3214.pas diff --git a/tests/webtbs/tw3214.pas b/tests/webtbs/tw3214.pas new file mode 100644 index 0000000000..7983434552 --- /dev/null +++ b/tests/webtbs/tw3214.pas @@ -0,0 +1,57 @@ +{ Source provided for Free Pascal Bug Report 3214 } +{ Submitted by "Mattias Gaertner" on 2004-07-17 } +{ e-mail: mattias@freepascal.org } +program InvalidOpcode; + +{$mode objfpc} +{$H+} +{$R+} + +uses + Classes, SysUtils; + +type + TMyEvent = class(TObject) + public + procedure SaveToStream(aStream: TStream); virtual; abstract; + end; + + TMyClass = class + private + function GetEvent(aIndex: integer): TMyEvent; + function GetEventCount: integer; + public + property EventCount: integer read GetEventCount; + property Events[aIndex: integer]: TMyEvent read GetEvent; + procedure SaveToStream(aDest: TStream); + end; + +{ TMyClass } + +function TMyClass.GetEvent(aIndex: integer): TMyEvent; +begin + Result:=nil; +end; + +function TMyClass.GetEventCount: integer; +begin + Result:=0; +end; + +procedure TMyClass.SaveToStream(aDest: TStream); +var + cEvent: Integer; + eCnt: Integer; +begin + eCnt:=EventCount; + aDest.Write(eCnt, sizeof(eCnt)); + for cEvent := 0 to eCnt -1 do + Events[cEvent].SaveToStream(aDest); +end; + +var + M: TMyClass; +begin + M:=TMyClass.Create; + M.SaveToStream(nil); +end. \ No newline at end of file