diff options
Diffstat (limited to 'libguile/array-handle.c')
-rw-r--r-- | libguile/array-handle.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libguile/array-handle.c b/libguile/array-handle.c index 4b69e67a1..f547bf518 100644 --- a/libguile/array-handle.c +++ b/libguile/array-handle.c @@ -27,6 +27,7 @@ #include <string.h> #include "arrays.h" +#include "boolean.h" #include "bitvectors.h" #include "bytevectors.h" #include "list.h" @@ -167,6 +168,12 @@ initialize_vector_handle (scm_t_array_handle *h, size_t len, h->vset = vset; } +static SCM +bitvector_ref (SCM bv, size_t idx) +{ + return scm_from_bool (scm_c_bitvector_bit_is_set (bv, idx)); +} + void scm_array_get_handle (SCM array, scm_t_array_handle *h) { @@ -194,7 +201,8 @@ scm_array_get_handle (SCM array, scm_t_array_handle *h) case scm_tc7_bitvector: initialize_vector_handle (h, scm_c_bitvector_length (array), SCM_ARRAY_ELEMENT_TYPE_BIT, - scm_c_bitvector_ref, scm_c_bitvector_set_x, + bitvector_ref, + scm_c_bitvector_set_x, scm_i_bitvector_bits (array), scm_i_is_mutable_bitvector (array)); break; |