Bug #9681 » 20141022-compile_data_alloc-word-align.patch
| compile.c (working copy) | ||
|---|---|---|
|
struct iseq_compile_data_storage *storage =
|
||
|
iseq->compile_data->storage_current;
|
||
|
size_t mod = 0;
|
||
|
/* The code assumes that SIZEOF_VALUE is 2 ** N,
|
||
|
* SIZEOF_VALUE is enough for word-alignment, and
|
||
|
* &storage->buff[0] is always word-aligned. */
|
||
|
if ((mod = size & (size_t)(SIZEOF_VALUE - 1)) > 0) {
|
||
|
size += (SIZEOF_VALUE - mod);
|
||
|
}
|
||
|
if (storage->pos + size > storage->size) {
|
||
|
unsigned long alloc_size = storage->size * 2;
|
||