mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
Fixed GC initialization and static roots.
* libguile/gc.c (scm_storage_prehistory): Call `GC_INIT ()'. Invoke `GC_add_roots ()' as well. (scm_init_gc): Removed call to `GC_init ()'. git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-6
This commit is contained in:
parent
c5018a2bbb
commit
a82e795325
1 changed files with 7 additions and 1 deletions
|
@ -55,6 +55,8 @@ extern unsigned long * __libc_ia64_register_backing_store_base;
|
|||
#include "libguile/gc.h"
|
||||
#include "libguile/dynwind.h"
|
||||
|
||||
#include <gc/gc.h>
|
||||
|
||||
#ifdef GUILE_DEBUG_MALLOC
|
||||
#include "libguile/debug-malloc.h"
|
||||
#endif
|
||||
|
@ -700,6 +702,10 @@ scm_getenv_int (const char *var, int def)
|
|||
void
|
||||
scm_storage_prehistory ()
|
||||
{
|
||||
GC_INIT ();
|
||||
GC_add_roots ((char *)scm_sys_protects,
|
||||
(char *)(scm_sys_protects + SCM_NUM_PROTECTS));
|
||||
|
||||
scm_c_hook_init (&scm_before_gc_c_hook, 0, SCM_C_HOOK_NORMAL);
|
||||
scm_c_hook_init (&scm_before_mark_c_hook, 0, SCM_C_HOOK_NORMAL);
|
||||
scm_c_hook_init (&scm_before_sweep_c_hook, 0, SCM_C_HOOK_NORMAL);
|
||||
|
@ -907,7 +913,7 @@ scm_mark_locations (SCM_STACKITEM x[], unsigned long n)
|
|||
void
|
||||
scm_init_gc ()
|
||||
{
|
||||
GC_init ();
|
||||
/* `GC_INIT ()' was invoked in `scm_storage_prehistory ()'. */
|
||||
|
||||
scm_after_gc_hook = scm_permanent_object (scm_make_hook (SCM_INUM0));
|
||||
scm_c_define ("after-gc-hook", scm_after_gc_hook);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue