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);
 }
 
 /**