Re: [Lazarus] typinfo routine gives memory leak

2011-09-21 Thread Howard Page-Clark

On 20/9/11 10:02, Martin wrote:

On 20/09/2011 21:59, Howard Page-Clark wrote:

The following (button and memo) program loses 276 bytes heap memory
that are not recovered.


...

procedure TForm1.BGetPropertiesClick(Sender: TObject);
var ppl: PPropList;
pl: TPropList;
ppi: PPropInfo;
pi: TPropInfo;
begin
GetPropList(TEdit, ppl);
pl := ppl^;
ppi := pl[0];
pi := ppi^;
if PropIsType(TEdit, pi.Name, tkAString) then
ShowMessageFmt('TEdit''s first PropList entry is %s of
tkAString',[pi.Name]);
end;

end.

Anyone know what I'm doing wrong?

afaik you need to

FreeMem(ppl);


Many thanks

H.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] typinfo routine gives memory leak

2011-09-20 Thread Howard Page-Clark
The following (button and memo) program loses 276 bytes heap memory that 
are not recovered.


unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Forms, StdCtrls;

type
  TForm1 = class(TForm)
BGetProperties: TButton;
Memo1: TMemo;
procedure BGetPropertiesClick(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

uses Dialogs, typinfo;

{$R *.lfm}

procedure TForm1.BGetPropertiesClick(Sender: TObject);
var ppl: PPropList;
pl: TPropList;
ppi: PPropInfo;
pi: TPropInfo;
begin
  GetPropList(TEdit, ppl);
  pl := ppl^;
  ppi := pl[0];
  pi := ppi^;
  if PropIsType(TEdit, pi.Name, tkAString) then
  ShowMessageFmt('TEdit''s first PropList entry is %s of 
tkAString',[pi.Name]);

end;

end.

Anyone know what I'm doing wrong?

Howard

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] typinfo routine gives memory leak

2011-09-20 Thread Martin

On 20/09/2011 21:59, Howard Page-Clark wrote:
The following (button and memo) program loses 276 bytes heap memory 
that are not recovered.



...

procedure TForm1.BGetPropertiesClick(Sender: TObject);
var ppl: PPropList;
pl: TPropList;
ppi: PPropInfo;
pi: TPropInfo;
begin
  GetPropList(TEdit, ppl);
  pl := ppl^;
  ppi := pl[0];
  pi := ppi^;
  if PropIsType(TEdit, pi.Name, tkAString) then
  ShowMessageFmt('TEdit''s first PropList entry is %s of 
tkAString',[pi.Name]);

end;

end.

Anyone know what I'm doing wrong?

afaik you need to

FreeMem(ppl);

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus