diff options
author | Marius Vollmer <mvo@zagadka.de> | 2004-10-27 18:11:14 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2004-10-27 18:11:14 +0000 |
commit | e0e496707beaea694fa79b4ca291dbc67abdc328 (patch) | |
tree | 09f5aaaf339b1824d8058e36804b95eb9bdbaa51 /libguile/srfi-4.i.c | |
parent | 7b1574ed4fe3a2b2ffa0e13a82e8cdaf6f66ef6a (diff) | |
download | guile-e0e496707beaea694fa79b4ca291dbc67abdc328.tar.gz |
* srfi-4.h, srfi-4.i.c (scm_u8vector_elements, etc): New.
* srfi-4.h, srfi-4.c (scm_uniform_vector_p,
scm_uniform_vector_ref, scm_uniform_vector_set_x,
scm_uniform_vector_to_list, scm_is_uniform_vector,
scm_c_uniform_vector_lengths, scm_c_uniform_vector_size,
scm_uniform_vector_elements, scm_uniform_vector_element_size,
scm_uniform_vector_release): New.
(scm_i_uniform_vector_prototype, scm_i_uniform_vector_tag): New.
(scm_uniform_element_size, scm_uniform_vector_length): Moved here
from unif.h, unif.c and extended to handle both the old and new
uniform vectors.
* unif.h, unif.c (scm_uniform_vector_ref, scm_array_ref): Renamed
the former to the latter.
(scm_uniform_vector_length, scm_uniform_element_size): Moved to
srfi-4.h, srfi-4.c.
(scm_make_uve): Call scm_make_s8vector for #\nul prototype.
(scm_array_p, scm_array_rank, scm_array_dimensions,
scm_transpose_array, scm_enclose_array, scm_array_ref, scm_cvref,
scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
scm_array_to_list, scm_array_prototype): Handle srfi-4 uniform
vectors. Removed code for scm_tc7_byvect.
(scm_dimensions_to_uniform_array): Fill array with 0 when
prototype is #\nul.
(scm_i_print_array_dimension, scm_i_legacy_tag,
scm_i_print_array): New.
(scm_raprin1): Call scm_i_print_array for arrays. Removed code
for scm_tc7_byvect.
Diffstat (limited to 'libguile/srfi-4.i.c')
-rw-r--r-- | libguile/srfi-4.i.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libguile/srfi-4.i.c b/libguile/srfi-4.i.c index 3350d60e4..48cc29eae 100644 --- a/libguile/srfi-4.i.c +++ b/libguile/srfi-4.i.c @@ -15,6 +15,10 @@ The tag name of the vector, for example u8. The tag is used to form the function names and is included in the docstrings, for example. + + - CTYPE + + The C type of the elements, for example scm_t_uint8. */ /* The first level does not expand macros in the arguments. */ @@ -113,6 +117,13 @@ SCM_DEFINE (F(scm_list_to_,TAG,vector), "list->"S(TAG)"vector", 1, 0, 0, } #undef FUNC_NAME +CTYPE * +F(scm_,TAG,vector_elements) (SCM obj) +{ + uvec_assert (TYPE, obj); + return (CTYPE *)SCM_UVEC_BASE (obj); +} + #undef paste #undef s_paste #undef stringify @@ -122,3 +133,4 @@ SCM_DEFINE (F(scm_list_to_,TAG,vector), "list->"S(TAG)"vector", 1, 0, 0, #undef TYPE #undef TAG +#undef CTYPE |