summaryrefslogtreecommitdiff
path: root/libguile/srfi-4.i.c
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2004-10-27 18:11:14 +0000
committerMarius Vollmer <mvo@zagadka.de>2004-10-27 18:11:14 +0000
commite0e496707beaea694fa79b4ca291dbc67abdc328 (patch)
tree09f5aaaf339b1824d8058e36804b95eb9bdbaa51 /libguile/srfi-4.i.c
parent7b1574ed4fe3a2b2ffa0e13a82e8cdaf6f66ef6a (diff)
downloadguile-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.c12
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