diff options
author | Marius Vollmer <mvo@zagadka.de> | 2005-01-02 20:49:04 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2005-01-02 20:49:04 +0000 |
commit | 4057a3e05afde62a4a5039668d129411958f330a (patch) | |
tree | f7240b20d7c05a0a944bfe7e2672ca9dd66f3cc8 /libguile/gc-mark.c | |
parent | f60539dba44057dbcf6179f30d4f03f44c46f0b6 (diff) | |
download | guile-4057a3e05afde62a4a5039668d129411958f330a.tar.gz |
Use new vector elements API or simple vector API, as appropriate.
Removed SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
Diffstat (limited to 'libguile/gc-mark.c')
-rw-r--r-- | libguile/gc-mark.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libguile/gc-mark.c b/libguile/gc-mark.c index 89501e6eb..95ac82088 100644 --- a/libguile/gc-mark.c +++ b/libguile/gc-mark.c @@ -86,7 +86,7 @@ scm_mark_all (void) size_t i; for (i = 0; i < SCM_HASHTABLE_N_BUCKETS (scm_gc_registered_roots); ++i) { - SCM l = SCM_HASHTABLE_BUCKETS (scm_gc_registered_roots)[i]; + SCM l = SCM_HASHTABLE_BUCKET (scm_gc_registered_roots, i); for (; !scm_is_null (l); l = SCM_CDR (l)) { SCM *p = (SCM *) (scm_to_ulong (SCM_CAAR (l))); @@ -223,15 +223,16 @@ scm_gc_mark_dependencies (SCM p) ptr = SCM_ENV (ptr); goto gc_mark_nimp; case scm_tc7_vector: - i = SCM_VECTOR_LENGTH (ptr); + i = SCM_SIMPLE_VECTOR_LENGTH (ptr); if (i == 0) break; while (--i > 0) { - if (SCM_NIMP (SCM_VELTS (ptr)[i])) - scm_gc_mark (SCM_VELTS (ptr)[i]); + SCM elt = SCM_SIMPLE_VECTOR_REF (ptr, i); + if (SCM_NIMP (elt)) + scm_gc_mark (elt); } - ptr = SCM_VELTS (ptr)[0]; + ptr = SCM_SIMPLE_VECTOR_REF (ptr, 0); goto gc_mark_loop; #ifdef CCLO case scm_tc7_cclo: @@ -266,7 +267,7 @@ scm_gc_mark_dependencies (SCM p) break; case scm_tc7_wvect: - SCM_SET_WVECT_GC_CHAIN (ptr, scm_weak_vectors); + SCM_I_SET_WVECT_GC_CHAIN (ptr, scm_weak_vectors); scm_weak_vectors = ptr; if (SCM_IS_WHVEC_ANY (ptr)) { @@ -275,14 +276,14 @@ scm_gc_mark_dependencies (SCM p) int weak_keys; int weak_values; - len = SCM_VECTOR_LENGTH (ptr); + len = SCM_SIMPLE_VECTOR_LENGTH (ptr); weak_keys = SCM_WVECT_WEAK_KEY_P (ptr); weak_values = SCM_WVECT_WEAK_VALUE_P (ptr); for (x = 0; x < len; ++x) { SCM alist; - alist = SCM_VELTS (ptr)[x]; + alist = SCM_SIMPLE_VECTOR_REF (ptr, x); /* mark everything on the alist except the keys or * values, according to weak_values and weak_keys. */ |