[fpc-pascal] Problem with heaptrc
    Xiangrong Fang 
    xrfang at gmail.com
       
    Sun Nov  9 15:41:41 CET 2014
    
    
  
2014-11-09 22:38 GMT+08:00 Michael Van Canneyt <michael at freepascal.org>:
> Code like this:
>
>    ci := PCacheItem((buf + SizeOf(Pointer) * Random(FDepth))^);
>     for i := 0 to FDepth - 1 do begin
>       slot := buf + SizeOf(Pointer) * i;
>       if Pointer(slot^) = nil then begin
>         Inc(N);
>         Pointer(slot^) := GetMem(SizeOf(TCacheItem));
>         ci := PCacheItem(slot^);
>
> makes me frown, because the first assignment to ci is useless, so highly
> suspect.
You are right Michael.  I just found that if there is no free slot, I use
"Random Replacement" to dump one of the existing cached item, whose key is
not freed, which caused memory leak.
Thanks!
Xiangrong.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20141109/79649840/attachment.html>
    
    
More information about the fpc-pascal
mailing list