If I had time, I'd try two experiments:1. before freeing everything, reset the prev field of each element; if this makes the leak go away, my guess would probably be right 2. use the destructor (Data had to be a class) to keep track of how many elements are actually freed by the GC (just a thread safe counter, that's incremented in the ctor and decremented in the dtor); just to find out if this is an internal GC problem, or if you have too many live garbage
Wild guess: there's a false pointer, that keeps one element in the list
from being collected, and because the list-prev pointers are still
there, all following elements won't be collected either in consequence.
- Who wants to have some fun memory debugging? Robert Fraser
- Re: Who wants to have some fun memory debugging? Robert Fraser
- Re: Who wants to have some fun memory debugging? Sean Kelly
- Re: Who wants to have some fun memory debuggin... Robert Fraser
- Re: Who wants to have some fun memory debuggin... Daniel Keep
- Re: Who wants to have some fun memory debu... grauzone
- Re: Who wants to have some fun memory... Denis Koroskin
- Re: Who wants to have some fun memory debugging? grauzone
- Re: Who wants to have some fun memory debuggin... Robert Fraser