fpc/tests/webtbs/tw10807.pp
Jonas Maebe 59d9169bbd * perform typechecking of callinit/callcleanup statements immediately when
they are added (mantis #10807), because
   a) the typecheckpass of the entire blocks has to be postponed until firstpass
      because new statements may still be added in the firstpass (otherwise
      the newly added statements in the firstpass are never typechecked due to
      the blocknode already having a resultdef set)
   b) simplify can be called between the typecheck and firstpass, and it needs
      the typeinfo

git-svn-id: trunk@10263 -
2008-02-10 11:13:33 +00:00

62 lines
1.1 KiB
ObjectPascal

unit tw10807;
interface
{$mode delphi}
uses
Classes, SysUtils;
const maxword = 65535;
type
PClrStreamHeader = ^TClrStreamHeader;
TClrStreamHeader = packed record
Name: array [0..MaxWord] of Char;
end;
TJclClrStream = class(TObject)
constructor Create(const AMetadata: Tobject; AHeader: PClrStreamHeader); virtual;
end;
TJclClrStreamClass = class of TJclClrStream;
tobjectlist = class
procedure add(c: tobject);
end;
tJclPeImage=class(tobject)
end;
TJclPeMetadata = class(TObject)
private
FStreams: TObjectList;
constructor Create(const AImage: TJclPeImage);
end;
implementation
procedure tobjectlist.add(c: tobject);
begin
end;
constructor TJclPeMetadata.Create(const AImage: TJclPeImage);
function GetStreamClass(const Name: string): TJclClrStreamClass;
begin
end;
procedure UpdateStreams;
var
pStream: PClrStreamHeader;
I: Integer;
begin
FStreams.Add(GetStreamClass(pStream.Name).Create(Self, pStream));
end;
begin
end;
constructor TJclClrStream.Create(const AMetadata: Tobject; AHeader: PClrStreamHeader);
begin
end;
end.