diff --git a/libguile/gc-malloc.c b/libguile/gc-malloc.c index 7879212bf..69aeebf55 100644 --- a/libguile/gc-malloc.c +++ b/libguile/gc-malloc.c @@ -78,8 +78,8 @@ scm_realloc (void *mem, size_t size) if (ptr || size == 0) return ptr; - /* Time is hard: trigger a full, ``stop-the-world'' GC, and try again. */ - GC_gcollect_and_unmap (); + /* Time is hard; attempt to reclaim memory before trying again. */ + gc_collect (SCM_I_CURRENT_THREAD->mutator, GC_COLLECTION_COMPACTING); ptr = do_realloc (mem, size); if (ptr) diff --git a/libguile/gc.h b/libguile/gc.h index 09ba49149..cd6d8ae2c 100644 --- a/libguile/gc.h +++ b/libguile/gc.h @@ -135,14 +135,8 @@ SCM_API char *scm_gc_strndup (const char *str, size_t n, const char *what) #define scm_gc_typed_calloc(t) ((t *) scm_gc_calloc (sizeof (t), #t)) -#ifdef BUILDING_LIBGUILE -#include "libguile/bdw-gc.h" -#define SCM_GC_MALLOC(size) GC_MALLOC (size) -#define SCM_GC_MALLOC_POINTERLESS(size) GC_MALLOC_ATOMIC (size) -#else #define SCM_GC_MALLOC(size) scm_gc_malloc (size, NULL) #define SCM_GC_MALLOC_POINTERLESS(size) scm_gc_malloc_pointerless (size, NULL) -#endif SCM_INLINE SCM scm_cell (scm_t_bits car, scm_t_bits cdr); diff --git a/libguile/loader.c b/libguile/loader.c index 2bd66d924..09bd166ec 100644 --- a/libguile/loader.c +++ b/libguile/loader.c @@ -1,4 +1,4 @@ -/* Copyright 2001,2009-2015,2017-2018,2021 +/* Copyright 2001,2009-2015,2017-2018,2021,2025 Free Software Foundation, Inc. This file is part of Guile. @@ -37,6 +37,7 @@ #include #endif +#include "bdw-gc.h" #include "boolean.h" #include "bytevectors.h" #include "elf.h" diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 9cd16ea42..697cc7072 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -1,4 +1,4 @@ -/* Copyright 1995-2002, 2004, 2006-2009, 2011, 2013-2014, 2017-2018, 2023-2024 +/* Copyright 1995-2002, 2004, 2006-2009, 2011, 2013-2014, 2017-2018, 2023-2025 Free Software Foundation, Inc. This file is part of Guile. @@ -43,6 +43,7 @@ #include #include "async.h" +#include "bdw-gc.h" #include "boolean.h" #include "dynwind.h" #include "eval.h" diff --git a/libguile/weak-vector.c b/libguile/weak-vector.c index b087891f6..533a07ff0 100644 --- a/libguile/weak-vector.c +++ b/libguile/weak-vector.c @@ -1,4 +1,4 @@ -/* Copyright 1995-1996,1998,2000-2001,2003,2006,2008-2014,2018 +/* Copyright 1995-1996,1998,2000-2001,2003,2006,2008-2014,2018,2025 Free Software Foundation, Inc. This file is part of Guile. @@ -26,6 +26,7 @@ #include #include +#include "bdw-gc.h" #include "boolean.h" #include "extensions.h" #include "gsubr.h"