mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 23:50:19 +02:00
Deprecate useless C bitvector interface
C should use scm_c_bitvector_length, not scm_bitvector_length. * doc/ref/api-data.texi (Bit Vectors): Reorganize a bit to put typed C interfaces in their own section. * libguile/bitvectors.h: * libguile/bitvectors.c (bitvector-length, bitvector-count): Make SCM-flavored C interface private. (scm_c_bitvector_count): New function. * libguile/deprecated.c (scm_bitvector_length): Deprecate. (scm_bit_count): Adapt to changes.
This commit is contained in:
parent
bfd38b8577
commit
b517a91ba4
5 changed files with 37 additions and 24 deletions
|
@ -184,10 +184,10 @@ scm_c_bitvector_length (SCM vec)
|
|||
return BITVECTOR_LENGTH (vec);
|
||||
}
|
||||
|
||||
SCM_DEFINE (scm_bitvector_length, "bitvector-length", 1, 0, 0,
|
||||
(SCM vec),
|
||||
"Return the length of the bitvector @var{vec}.")
|
||||
#define FUNC_NAME s_scm_bitvector_length
|
||||
SCM_DEFINE_STATIC (bitvector_length, "bitvector-length", 1, 0, 0,
|
||||
(SCM vec),
|
||||
"Return the length of the bitvector @var{vec}.")
|
||||
#define FUNC_NAME s_bitvector_length
|
||||
{
|
||||
return scm_from_size_t (scm_c_bitvector_length (vec));
|
||||
}
|
||||
|
@ -490,17 +490,16 @@ count_ones (uint32_t x)
|
|||
return (x+(x>>16)) & 0xff;
|
||||
}
|
||||
|
||||
SCM_DEFINE (scm_bitvector_count, "bitvector-count", 1, 0, 0,
|
||||
(SCM bitvector),
|
||||
"Return the number of set bits in @var{bitvector}.")
|
||||
#define FUNC_NAME s_scm_bitvector_count
|
||||
size_t
|
||||
scm_c_bitvector_count (SCM bitvector)
|
||||
#define FUNC_NAME "bitvector-count"
|
||||
{
|
||||
VALIDATE_BITVECTOR (1, bitvector);
|
||||
|
||||
size_t len = BITVECTOR_LENGTH (bitvector);
|
||||
|
||||
if (len == 0)
|
||||
return SCM_INUM0;
|
||||
return 0;
|
||||
|
||||
const uint32_t *bits = BITVECTOR_BITS (bitvector);
|
||||
size_t count = 0;
|
||||
|
@ -513,7 +512,16 @@ SCM_DEFINE (scm_bitvector_count, "bitvector-count", 1, 0, 0,
|
|||
uint32_t last_mask = ((uint32_t)-1) >> (32*word_len - len);
|
||||
count += count_ones (bits[i] & last_mask);
|
||||
|
||||
return scm_from_size_t (count);
|
||||
return count;
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM_DEFINE_STATIC (scm_bitvector_count, "bitvector-count", 1, 0, 0,
|
||||
(SCM bitvector),
|
||||
"Return the number of set bits in @var{bitvector}.")
|
||||
#define FUNC_NAME s_scm_bitvector_count
|
||||
{
|
||||
return scm_from_size_t (scm_c_bitvector_count (bitvector));
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue