You are right, the bug is fixed, and another bug in the GetEnumerator are also found and fixed.
This is my first time using heaptrc. Thanks a lot. 2013/12/27 Jeppe Græsdal Johansen <je...@j-software.dk> > 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 >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal