Mercurial > projects > ldc
comparison 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 |
comparison
equal
deleted
inserted
replaced
489:822774a94750 | 490:f8c979770af3 |
---|---|
405 /** | 405 /** |
406 * for allocating a single POD value | 406 * for allocating a single POD value |
407 */ | 407 */ |
408 extern (C) void* _d_allocmemoryT(TypeInfo ti) | 408 extern (C) void* _d_allocmemoryT(TypeInfo ti) |
409 { | 409 { |
410 return gc_malloc(ti.tsize(), (ti.flags() & 1) ? BlkAttr.NO_SCAN : 0); | 410 return gc_malloc(ti.tsize(), !(ti.flags() & 1) ? BlkAttr.NO_SCAN : 0); |
411 } | 411 } |
412 | 412 |
413 /** | 413 /** |
414 * | 414 * |
415 */ | 415 */ |