http://d.puremagic.com/issues/show_bug.cgi?id=3463
--- Comment #79 from nfx...@gmail.com 2010-09-15 06:33:39 PDT --- Incremental patch: diff --git a/tango/core/rt/gc/basic/gcx.d b/tango/core/rt/gc/basic/gcx.d index 93c8078..0f049d7 100644 --- a/tango/core/rt/gc/basic/gcx.d +++ b/tango/core/rt/gc/basic/gcx.d @@ -589,9 +589,9 @@ class GC // Return next item from free list gcx.bucket[bin] = (cast(List*)p).next; if( !(bits & BlkAttr.NO_SCAN) ) - cstring.memset(p + size, 0, binsize[bin] - size); + cstring.memset(p + request_size, 0, capacity - request_size); //debug(PRINTF) printf("\tmalloc => %x\n", p); - debug (MEMSTOMP) cstring.memset(p, 0xF0, size); + debug (MEMSTOMP) cstring.memset(p, 0xF0, request_size); } else { request_size is the size the user requested, while size is request_size + the pointermap's size. But size can be much smaller than memory block's real size (= capacity), so you really want to start clearing the memory right after the user data. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------