08/11/12 20:28:40
以下のinterfaceを使ったコードにおいて、メモリーリークが発生するのですが、対処法はありませんでしょうか?
こちらのdSpec URLリンク(delphixtreme.com) で同様のコードがありどうしたものかと困っております。
program circular_reference;
{$APPTYPE CONSOLE}
uses SysUtils, Classes;
type
ITest = interface
['{38C68C6A-7CBD-42FE-9249-0ED869119A29}']
procedure Foo;
end;
TTest = class;
TSubTest = class
FTest: ITest;
public
constructor Create(NewTest: ITest);
destructor Destroy; override;
end;
TTest = class(TInterfacedObject, ITest)
FSubTest: TSubTest;
public
constructor Create;
destructor Destroy; override;
procedure Foo;
end;
procedure CallFoo(Test: ITest);
begin
if Assigned(Test) then Test.Foo;
end;