repair tagged-array sweep that steps too far if an alignment word was added

svn: r3924
This commit is contained in:
Matthew Flatt 2006-08-02 12:36:50 +00:00
parent 8ff7cc1009
commit 1129f4e30b

View File

@ -2533,7 +2533,7 @@ static void repair_heap(void)
struct objhead *info = (struct objhead *)start;
size_t size = info->size;
if(info->mark) {
void **tempend = (++start) + (size - 1);
void **tempend = (start++) + (size - 1);
unsigned short tag = *(unsigned short*)start;
while(start < tempend)
start += fixup_table[tag](start);