Mercurial > projects > ldc
diff runtime/internal/lifetime.d @ 490:f8c979770af3
Fixed a critical bug in the runtime, where _d_allocmemoryT would mark
the memory block as having pointers (for scanning) opposite of what it
should. So pointers would not be seen and freed. Should fix a bunch of
regressions with AAs.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 17:28:01 +0200 |
parents | 44f08170f4ef |
children | e6bcc4d9e5ff |
line wrap: on
line diff
--- a/runtime/internal/lifetime.d Sun Aug 10 13:42:08 2008 +0200 +++ b/runtime/internal/lifetime.d Sun Aug 10 17:28:01 2008 +0200 @@ -407,7 +407,7 @@ */ extern (C) void* _d_allocmemoryT(TypeInfo ti) { - return gc_malloc(ti.tsize(), (ti.flags() & 1) ? BlkAttr.NO_SCAN : 0); + return gc_malloc(ti.tsize(), !(ti.flags() & 1) ? BlkAttr.NO_SCAN : 0); } /**