diff options
author | Daniel Llorens <daniel.llorens@bluewin.ch> | 2013-04-11 13:03:45 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-01-27 21:45:17 +0100 |
commit | 943f690a308f917fbac994fc1dd14d339879d6d4 (patch) | |
tree | 93e63d2601bc415ec8bf518fc3c0aac7894648b8 /libguile/generalized-vectors.h | |
parent | 499a9804c784a92a1dbe51cd3fb45847c29a1c7d (diff) | |
download | guile-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.h | 4 |
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); |