Browse Source

* initial revision

florian 21 years ago
parent
commit
cca4d8ce97
1 changed files with 57 additions and 0 deletions
  1. 57 0
      tests/webtbs/tw3214.pas

+ 57 - 0
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: [email protected] }
+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.