1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +02:00

Rework large_object_space_alloc to also map if needed

Also fix a bug in which objects reclaimed from freelists were not
zeroed.
This commit is contained in:
Andy Wingo 2025-03-07 10:47:41 +01:00
parent 6c444b33f1
commit 5bddd522cf
4 changed files with 22 additions and 33 deletions

View file

@ -876,8 +876,6 @@ allocate_large(struct gc_mutator *mut, size_t size) {
atomic_fetch_add(&heap->large_object_pages, npages);
void *ret = large_object_space_alloc(lospace, npages);
if (!ret)
ret = large_object_space_obtain_and_alloc(lospace, npages);
if (!ret) {
perror("weird: we have the space but mmap didn't work");