[fpc-pascal] memory leak detection using FPC

Inoussa OUEDRAOGO inoussa12 at gmail.com
Tue Sep 19 14:20:50 CEST 2006


hi
I reported a bug for interface reference counting at
http://www.freepascal.org/mantis/view.php?id=7281

Bellow is the test program.

Regards, Inoussa.


====================
program test_intf;

{$mode objfpc}{$H+}

uses
  SysUtils;

type
  ITest = interface
    procedure DoIt(AMsg : string);
  end;

  TTest = class(TInterfacedObject,ITest)
  protected
    procedure DoIt(AMsg : string);
  public
    constructor Create();
    destructor Destroy();override;
  end;

var InstancesCount : Integer = 0;

procedure TTest.DoIt(AMsg: string);
begin
  WriteLn(AMsg);
end;

constructor TTest.Create();
begin
  Inherited;
  Inc(InstancesCount);
  WriteLn('Creating >>> ',Integer(self));
end;

destructor TTest.Destroy();
begin
  Dec(InstancesCount);
  WriteLn('Destroying >>> ',Integer(self));
  inherited Destroy();
end;

procedure proc1(ATest : ITest);
begin
  ATest.DoIt('  called in proc1');
end;

procedure test();
begin
  (TTest.Create() as ITest).DoIt('  called in test');
  proc1(TTest.Create() as ITest);
end;

begin
  test();
  WriteLn('Remaining instances ... ',InstancesCount);
end.



More information about the fpc-pascal mailing list