summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/bytevectors.c3
-rw-r--r--libguile/gc.c6
-rw-r--r--libguile/gc.h6
-rw-r--r--libguile/init.c27
4 files changed, 19 insertions, 23 deletions
diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c
index 63fdb5ca3..ac5bc1646 100644
--- a/libguile/bytevectors.c
+++ b/libguile/bytevectors.c
@@ -2202,8 +2202,7 @@ scm_bootstrap_bytevectors (void)
/* This must be instantiated here because the generalized-vector API may
want to access bytevectors even though `(rnrs bytevector)' hasn't been
loaded. */
- scm_null_bytevector =
- scm_gc_protect_object (make_bytevector (0, SCM_ARRAY_ELEMENT_TYPE_VU8));
+ scm_null_bytevector = make_bytevector (0, SCM_ARRAY_ELEMENT_TYPE_VU8);
#ifdef WORDS_BIGENDIAN
scm_i_native_endianness = scm_from_locale_symbol ("big");
diff --git a/libguile/gc.c b/libguile/gc.c
index b2960b1d4..b527e4955 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -646,8 +646,8 @@ scm_storage_prehistory ()
scm_i_pthread_mutex_t scm_i_gc_admin_mutex = SCM_I_PTHREAD_MUTEX_INITIALIZER;
-int
-scm_init_storage ()
+void
+scm_init_gc_protect_object ()
{
size_t j;
@@ -670,8 +670,6 @@ scm_init_storage ()
#endif
scm_protects = scm_c_make_hash_table (31);
-
- return 0;
}
diff --git a/libguile/gc.h b/libguile/gc.h
index 34c9b8474..05b08afb2 100644
--- a/libguile/gc.h
+++ b/libguile/gc.h
@@ -237,9 +237,9 @@ SCM_API void scm_gc_register_root (SCM *p);
SCM_API void scm_gc_unregister_root (SCM *p);
SCM_API void scm_gc_register_roots (SCM *b, unsigned long n);
SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long n);
-SCM_API void scm_storage_prehistory (void);
-SCM_API int scm_init_storage (void);
-SCM_API void scm_init_gc (void);
+SCM_INTERNAL void scm_storage_prehistory (void);
+SCM_INTERNAL void scm_init_gc_protect_object (void);
+SCM_INTERNAL void scm_init_gc (void);
#if SCM_ENABLE_DEPRECATED == 1
diff --git a/libguile/init.c b/libguile/init.c
index 05f5c973f..c674b4034 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -435,21 +435,20 @@ scm_i_init_guile (SCM_STACKITEM *base)
}
scm_storage_prehistory ();
- scm_threads_prehistory (base);
- scm_weaks_prehistory ();
+ scm_threads_prehistory (base); /* requires storage_prehistory */
+ scm_weaks_prehistory (); /* requires storage_prehistory */
#ifdef GUILE_DEBUG_MALLOC
scm_debug_malloc_prehistory ();
#endif
- if (scm_init_storage ()) /* requires threads_prehistory */
- abort ();
-
+ scm_init_gc_protect_object (); /* requires threads_prehistory, only provides
+ scm_protect_object / scm_permanent_object */
scm_smob_prehistory ();
- scm_symbols_prehistory (); /* requires storage */
- scm_modules_prehistory (); /* requires storage */
- scm_init_variable (); /* all bindings need variables */
- scm_init_continuations ();
+ scm_symbols_prehistory (); /* requires weaks_prehistory */
+ scm_modules_prehistory ();
+ scm_init_variable ();
+ scm_init_continuations (); /* requires smobs */
scm_init_root (); /* requires continuations */
- scm_init_threads (); /* requires fluids */
+ scm_init_threads ();
scm_init_gsubr ();
scm_init_thread_procs (); /* requires gsubrs */
scm_init_procprop ();
@@ -465,20 +464,20 @@ scm_i_init_guile (SCM_STACKITEM *base)
scm_init_eq ();
scm_init_error ();
scm_init_fluids ();
- scm_init_feature (); /* Requires fluids */
- scm_init_backtrace (); /* Requires fluids */
+ scm_init_feature ();
+ scm_init_backtrace ();
scm_init_fports ();
scm_init_strports ();
scm_init_ports ();
scm_init_gdbint (); /* Requires strports */
scm_init_hash ();
scm_init_hashtab ();
- scm_init_deprecation (); /* Requires hashtabs */
+ scm_init_deprecation ();
scm_init_objprop ();
scm_init_promises ();
scm_init_properties ();
scm_init_hooks (); /* Requires smob_prehistory */
- scm_init_gc (); /* Requires hooks, async */
+ scm_init_gc (); /* Requires hooks */
scm_init_gettext ();
scm_init_ioext ();
scm_init_keywords ();