summaryrefslogtreecommitdiff
path: root/libguile/array-handle.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/array-handle.c')
-rw-r--r--libguile/array-handle.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libguile/array-handle.c b/libguile/array-handle.c
index f547bf518..e51e133bb 100644
--- a/libguile/array-handle.c
+++ b/libguile/array-handle.c
@@ -174,6 +174,15 @@ bitvector_ref (SCM bv, size_t idx)
return scm_from_bool (scm_c_bitvector_bit_is_set (bv, idx));
}
+static void
+bitvector_set_x (SCM bv, size_t idx, SCM val)
+{
+ if (scm_is_true (val))
+ scm_c_bitvector_set_bit_x (bv, idx);
+ else
+ scm_c_bitvector_clear_bit_x (bv, idx);
+}
+
void
scm_array_get_handle (SCM array, scm_t_array_handle *h)
{
@@ -202,7 +211,7 @@ scm_array_get_handle (SCM array, scm_t_array_handle *h)
initialize_vector_handle (h, scm_c_bitvector_length (array),
SCM_ARRAY_ELEMENT_TYPE_BIT,
bitvector_ref,
- scm_c_bitvector_set_x,
+ bitvector_set_x,
scm_i_bitvector_bits (array),
scm_i_is_mutable_bitvector (array));
break;