[Mono-list] Memory leak
Alan McGovern
alan.mcgovern at gmail.com
Sat Feb 7 10:25:06 EST 2009
Also, can you ensure that you are not compiling under 'release' mode when
trying to replicate my results. You need to be in Debug mode I believe.
Alan.
On Sat, Feb 7, 2009 at 3:24 PM, Alan McGovern <alan.mcgovern at gmail.com>wrote:
> Hi,
>
> Can you clarify: are you referring to Mono/gmcs or .NET/VC# here?
>
> I have always been talking about VS/.NET.
>
> In this case, I suspect Mono is leaving a pointer to an unreachable
>> temporary
>> in the stack frame of the "Main" function and the conservative scan has to
>> assume that it is a genuine root.
>
>
> I suspect this is exactly what was stated in the third response on this
> thread.
>
>
>> Unfortunately, that bogus root does not
>> correspond to anything in the C# source code so the programmers only hope
>> to
>> avoid this bug is to randomly rewrite their code and hope that the
>> compiler's
>> rearrangements do not reintroduce the problem (e.g. by inlining).
>
> No need to do that, just follow the documented workaround and null the
> 'next' pointer when detaching from the list.
>
>
> static void pop()
> {
> var current = tail;
> var next = tail.next;
> var nextnext = tail.next.next;
> current.next = nextnext;
> next.next = null;
> }
>
> This fixes the issue under MS.NET and under Mono.
>
> Alan.
>
>
>>
>>
>> --
>> Dr Jon Harrop, Flying Frog Consultancy Ltd.
>> http://www.ffconsultancy.com/?e
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20090207/d6d57ab7/attachment.html
More information about the Mono-list
mailing list