summaryrefslogtreecommitdiff
path: root/libguile/generalized-vectors.h
diff options
context:
space:
mode:
authorDaniel Llorens <daniel.llorens@bluewin.ch>2013-04-11 13:03:45 +0200
committerAndy Wingo <wingo@pobox.com>2014-01-27 21:45:17 +0100
commit943f690a308f917fbac994fc1dd14d339879d6d4 (patch)
tree93e63d2601bc415ec8bf518fc3c0aac7894648b8 /libguile/generalized-vectors.h
parent499a9804c784a92a1dbe51cd3fb45847c29a1c7d (diff)
downloadguile-943f690a308f917fbac994fc1dd14d339879d6d4.tar.gz
Fix bad uses of base and lbnd on rank 1 arrays
* libguile/array-map.c - rafill, ramap, rafe, racp: object from SCM_I_ARRAY_V always has base 0, lbnd 0 and inc 1; make use of this. * libguile/arrays.c - array_handle_ref, array_handle_set: idem. - array_get_handle: sanity check. * libguile/generalized-vectors.c - scm_c_generalized_vector_ref, scm_c_generalized_vector_set_x: pos should be base when idx is lbnd. Furthermore, pos should be signed and have its overflow checked; do this by handling the job to scm_c_array_ref_1, scm_c_array_set_1_x. * libguile/generalized-vectors.h - fix prototypes.
Diffstat (limited to 'libguile/generalized-vectors.h')
-rw-r--r--libguile/generalized-vectors.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/generalized-vectors.h b/libguile/generalized-vectors.h
index e2acb9879..876537ae0 100644
--- a/libguile/generalized-vectors.h
+++ b/libguile/generalized-vectors.h
@@ -32,8 +32,8 @@
SCM_API int scm_is_generalized_vector (SCM obj);
SCM_API size_t scm_c_generalized_vector_length (SCM v);
-SCM_API SCM scm_c_generalized_vector_ref (SCM v, size_t idx);
-SCM_API void scm_c_generalized_vector_set_x (SCM v, size_t idx, SCM val);
+SCM_API SCM scm_c_generalized_vector_ref (SCM v, ssize_t idx);
+SCM_API void scm_c_generalized_vector_set_x (SCM v, ssize_t idx, SCM val);
SCM_API void scm_generalized_vector_get_handle (SCM vec,
scm_t_array_handle *h);