Round out memory pool allocations in fast-import to pointer sizes.

Some architectures (e.g. SPARC) would require that we access pointers
only on pointer-sized alignments.  So ensure the pool allocator
rounds out non-pointer sized allocations to the next pointer so we
don't generate bad memory addresses.  This could have occurred if
we had previously allocated an atom whose string was not a whole
multiple of the pointer size, for example.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2006-08-24 04:46:29 -04:00
Родитель 41e5257fcf
Коммит 8d8928b051
1 изменённых файлов: 3 добавлений и 0 удалений

Просмотреть файл

@ -342,6 +342,9 @@ static void* pool_alloc(size_t len)
} }
r = p->next_free; r = p->next_free;
/* round out to a pointer alignment */
if (len & (sizeof(void*) - 1))
len += sizeof(void*) - (len & (sizeof(void*) - 1));
p->next_free += len; p->next_free += len;
return r; return r;
} }