diff options
author | Daniel Llorens <daniel.llorens@bluewin.ch> | 2015-02-11 12:58:01 +0100 |
---|---|---|
committer | Daniel Llorens <daniel.llorens@bluewin.ch> | 2016-11-23 11:49:35 +0100 |
commit | 85ac9cce0aa0d50274377244cf73c8776fb36db6 (patch) | |
tree | dab37284c85fc1b2e5ade9a2cacdfa6d4d18176d /libguile | |
parent | 4e766795b2412f42a9c71441e6cc0b36d8a4c5dc (diff) | |
download | guile-85ac9cce0aa0d50274377244cf73c8776fb36db6.tar.gz |
Reuse SCM_BYTEVECTOR_TYPED_LENGTH in scm_array_get_handle
* libguile/bytevectors.h (SCM_BYTEVECTOR_TYPE_SIZE,
SCM_BYTEVECTOR_TYPED_LENGTH): Moved from libguile/bytevectors.c.
* libguile/array-handle.c (scm_array_get_handle): Reuse
SCM_BYTEVECTOR_TYPED_LENGTH.
Diffstat (limited to 'libguile')
-rw-r--r-- | libguile/array-handle.c | 6 | ||||
-rw-r--r-- | libguile/bytevectors.c | 5 | ||||
-rw-r--r-- | libguile/bytevectors.h | 5 |
3 files changed, 7 insertions, 9 deletions
diff --git a/libguile/array-handle.c b/libguile/array-handle.c index 2252ecc9a..3595266ff 100644 --- a/libguile/array-handle.c +++ b/libguile/array-handle.c @@ -185,15 +185,13 @@ scm_array_get_handle (SCM array, scm_t_array_handle *h) break; case scm_tc7_bytevector: { - size_t byte_length, length, element_byte_size; + size_t length; scm_t_array_element_type element_type; scm_t_vector_ref vref; scm_t_vector_set vset; - byte_length = scm_c_bytevector_length (array); element_type = SCM_BYTEVECTOR_ELEMENT_TYPE (array); - element_byte_size = scm_i_array_element_type_sizes[element_type] / 8; - length = byte_length / element_byte_size; + length = SCM_BYTEVECTOR_TYPED_LENGTH (array); switch (element_type) { diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index e426ae3a7..cf247dcd4 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -192,11 +192,6 @@ #define SCM_BYTEVECTOR_SET_PARENT(_bv, _parent) \ SCM_SET_CELL_OBJECT_3 ((_bv), (_parent)) -#define SCM_BYTEVECTOR_TYPE_SIZE(var) \ - (scm_i_array_element_type_sizes[SCM_BYTEVECTOR_ELEMENT_TYPE (var)]/8) -#define SCM_BYTEVECTOR_TYPED_LENGTH(var) \ - (SCM_BYTEVECTOR_LENGTH (var) / SCM_BYTEVECTOR_TYPE_SIZE (var)) - /* The empty bytevector. */ SCM scm_null_bytevector = SCM_UNSPECIFIED; diff --git a/libguile/bytevectors.h b/libguile/bytevectors.h index a5eeaea0c..af4ac1c34 100644 --- a/libguile/bytevectors.h +++ b/libguile/bytevectors.h @@ -129,6 +129,11 @@ SCM_API SCM scm_utf32_to_string (SCM, SCM); #define SCM_BYTEVECTOR_CONTIGUOUS_P(_bv) \ (SCM_BYTEVECTOR_FLAGS (_bv) >> 8UL) +#define SCM_BYTEVECTOR_TYPE_SIZE(var) \ + (scm_i_array_element_type_sizes[SCM_BYTEVECTOR_ELEMENT_TYPE (var)]/8) +#define SCM_BYTEVECTOR_TYPED_LENGTH(var) \ + (SCM_BYTEVECTOR_LENGTH (var) / SCM_BYTEVECTOR_TYPE_SIZE (var)) + /* Hint that is passed to `scm_gc_malloc ()' and friends. */ #define SCM_GC_BYTEVECTOR "bytevector" |