mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 20:28:14 +02:00
59 lines
1.1 KiB
ObjectPascal
59 lines
1.1 KiB
ObjectPascal
{ %opt=-ghl }
|
|
|
|
{ Source provided for Free Pascal Bug Report 3411 }
|
|
{ Submitted by "Dean Zobec" on 2004-11-28 }
|
|
{ e-mail: dezobec@tin.it }
|
|
{$mode objfpc}{$H+}
|
|
{$interfaces com}
|
|
program interfaceleak;
|
|
// compile with option -ghl
|
|
type
|
|
|
|
IMoney = interface
|
|
['{AAD734A1-6F35-D911-9C73-C6AC7996EDD0}']
|
|
function Add(aMoney: IMoney): IMoney;
|
|
end;
|
|
|
|
TMoney = class(TInterfacedObject, IMoney)
|
|
private
|
|
FAmount: Int64;
|
|
FCurrencyUnit: string;
|
|
public
|
|
function Add(aMoney: IMoney): IMoney;
|
|
constructor Create(aAmount: int64;
|
|
aUnit: string);
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
function TMoney.Add(aMoney: IMoney): IMoney;
|
|
begin
|
|
Result := nil;
|
|
end;
|
|
|
|
constructor TMoney.Create(aAmount: int64;
|
|
aUnit: string);
|
|
begin
|
|
Inherited Create;
|
|
FAmount := aAmount;
|
|
FCurrencyUnit := aUnit;
|
|
end;
|
|
|
|
destructor TMoney.Destroy;
|
|
begin
|
|
FCurrencyUnit := '';
|
|
writeln('Destroyed');
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TestLeak;
|
|
var
|
|
a: IMoney;
|
|
begin
|
|
a := TMoney.Create(12, 'EUR');
|
|
end;
|
|
|
|
begin
|
|
HaltOnNotReleased := true;
|
|
TestLeak;
|
|
end.
|