diff options
author | Andy Wingo <wingo@pobox.com> | 2020-04-14 22:40:43 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2020-04-14 22:40:43 +0200 |
commit | 8110061e647134ab9071ecb5ce59b69b4ed6ed35 (patch) | |
tree | 126a6f1288ead0c1b1c750ab077a83088b92e454 /libguile/array-handle.c | |
parent | d804177be4525feb517feb63ca09502d187fc016 (diff) | |
download | guile-8110061e647134ab9071ecb5ce59b69b4ed6ed35.tar.gz |
bitvector-set-bit! / bitvector-clear-bit! replace bitvector-set!
* NEWS: Add entry.
* doc/ref/api-data.texi (Bit Vectors): Update.
* libguile/array-handle.h (bitvector_set_x, scm_array_get_handle): Adapt
to bitvector changes.
* libguile/bitvectors.h:
* libguile/bitvectors.c (scm_c_bitvector_set_bit_x)
(scm_c_bitvector_clear_bit_x): New functions.
* libguile/deprecated.h:
* libguile/deprecated.c (scm_bitvector_set_x): Deprecate.
* module/ice-9/sandbox.scm (mutable-bitvector-bindings): Replace
bitvector-set! with bitvector-set-bit! / bitvector-clear-bit!.
* module/system/vm/disassembler.scm (static-opcode-set): Use
bitvector-set-bit!.
* module/system/vm/frame.scm (compute-defs-by-slot, available-bindings):
Use bitvector-set-bit!.
* test-suite/tests/bitvectors.test: Update.
Diffstat (limited to 'libguile/array-handle.c')
-rw-r--r-- | libguile/array-handle.c | 11 |
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; |