Am Montag, 23. April 2007 20:23 schrieb chromatic:
> On Thursday 05 April 2007 16:56, Mehmet Yavuz Selim Soyturk wrote:
> > The next program causes a memory leak for me.
> >
> > .sub main :main
> > loop:
> >     $P0 = new .String
> >     goto loop
> > .end

That's an endless loop. How does one measure, if it's leaking memory?

Anway:

> I can't explain that, but here's some suspicious code in
> Parrot_allocate_string() in src/resources.c:

[ ... ]

> If I identify and read the related freeing code correctly
> (Parrot_dod_sweep() in src/gc/dod.c):
>
>                 else if (PObj_sysmem_TEST(b) && PObj_bufstart(b)) {

These 2 snippets aren't related at all. The latter is dealing with freeing 
sys-malloced memory as the comment is saying. The former is plain string 
memory allocation code.

I'd presume, that the string memory compaction code i.e. 'compact_pool()' is 
never run in the loop above.

leo

Reply via email to