summaryrefslogtreecommitdiffstats
path: root/byterun/intern.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/intern.c')
-rw-r--r--byterun/intern.c9
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);
}
}