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.
This commit is contained in:
Tomas Lindquist Olsen
2008-08-10 17:28:01 +02:00
parent d81aeb0d28
commit 43567aca3b
3 changed files with 7 additions and 50 deletions

View File

@@ -407,7 +407,7 @@ void* _d_allocmemory(size_t nbytes)
*/
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);
}
/**