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 */