On 1 December 2015 at 09:46, Iain Buclaw <[email protected]> wrote:

>
> Where:
>
> *(cast(List*)p) = {next = 0x4c9fad <__gdc_exception_cleanup>, pool = 0x0}
>
> Not sure what is going on, but it seems to happen after allocating memory
> a couple dozen or so times.
>
> David, did you get anything like this when moving to 2.067?
>
>
I removed the line in EH where `__gdc_exception_cleanup` is assigned (xh is
GC'd memory)

221│   //xh.unwindHeader.exception_cleanup = & __gdc_exception_cleanup;


The unittester carries on a little longer until it seg faults here.

1796│         // Return next item from free list
1797│         bucket[bin] = (cast(List*)p).next;
1798│         auto pool = (cast(List*)p).pool;
1799│         if (bits)
1800├>            pool.setBits((p - pool.baseAddr) >> pool.shiftBy, bits);

Where:

*cast(List*)p = {next = 0xa, pool = 0x0}


Martin - you've been making changes to the GC no?  Any idea why the bucket
list could be storing garbage pointers?  Any hints to narrow this down?  (I
could turn on memory stomping).

Reply via email to