diff options
author | Andy Wingo <wingo@pobox.com> | 2009-12-05 11:43:20 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-12-05 11:44:09 +0100 |
commit | 562cd1b8f87dfb099c9cca5dfa4846367e6c9ca3 (patch) | |
tree | 8a135c215bc7bf1787840357ff8297fb54d9118f | |
parent | f39448c5a3804f823e367d97cd5e862b016cb8aa (diff) | |
download | guile-562cd1b8f87dfb099c9cca5dfa4846367e6c9ca3.tar.gz |
more boot cleanup
* libguile/bytevectors.c (scm_bootstrap_bytevectors): Remove a call to
scm_gc_protect_object.
* libguile/gc.h:
* libguile/gc.c (scm_init_gc_protect_object): Rename from
scm_init_storage, and just return void. Make the GC boot procs have
internal linkage.
* libguile/init.c: Adapt to the name change.
-rw-r--r-- | libguile/bytevectors.c | 3 | ||||
-rw-r--r-- | libguile/gc.c | 6 | ||||
-rw-r--r-- | libguile/gc.h | 6 | ||||
-rw-r--r-- | libguile/init.c | 27 |
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 (); |