Den 27-12-2013 10:16, Xiangrong Fang skrev:
Hi All,

I used HeapTrc on my TTreap class:

https://github.com/xrfang/fpcollection/blob/master/src/units/treap.pas

It reported memory leak in the following procedure:
function TTreap.GetEnumerator: TTreap;


begin
Result := TTreap.Create; //<-- memory leak here


Result.ProxyFor := Self;


... ...
end;


Typical usage of the TTreap enumerator is:

for n in aTreap do begin


   //do something with n
end;


My question is: will the for-loop automatically free the enumerator after usage? How to fix leaks in my ttreap class?

Thanks a lot!

Xiangrong

Your constructor allocates a new NullNode, which gets overwritten in GetEnumerator, and hence the enumerator NullNode is never freed.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to