diff options
Diffstat (limited to 'byterun/intern.c')
-rw-r--r-- | byterun/intern.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/byterun/intern.c b/byterun/intern.c index 8072dfe48..6be11e92e 100644 --- a/byterun/intern.c +++ b/byterun/intern.c @@ -372,12 +372,13 @@ static void intern_add_to_heap(mlsize_t whsize) /* If heap chunk not filled totally, build free block at end */ asize_t request = ((Bsize_wsize(whsize) + Page_size - 1) >> Page_log) << Page_log; - header_t * end_extra_block = + header_t * end_extra_block = (header_t *) intern_extra_block + Wsize_bsize(request); Assert(intern_dest <= end_extra_block); - if (intern_dest < end_extra_block) - *intern_dest = - Make_header(Wosize_whsize(end_extra_block-intern_dest), 0, Caml_white); + if (intern_dest < end_extra_block){ + make_free_blocks ((value *) intern_dest, end_extra_block - intern_dest, + 0); + } add_to_heap(intern_extra_block); } } |