diff options
author | Andy Wingo <wingo@pobox.com> | 2012-01-10 00:23:17 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-01-10 00:23:49 +0100 |
commit | 0bdd43515eb3c62839512181cf33e5aea383e661 (patch) | |
tree | beb0510b073def60e15d0aba064b76b62d331cd4 /libguile/generalized-vectors.c | |
parent | bbc2364a3e15fd4c7bbaf2c1c41554d7e9a87b9b (diff) | |
parent | f78a1ccede02ccad89d6c91a6b297f1f14a30907 (diff) | |
download | guile-0bdd43515eb3c62839512181cf33e5aea383e661.tar.gz |
Merge commit 'f78a1ccede02ccad89d6c91a6b297f1f14a30907'
Diffstat (limited to 'libguile/generalized-vectors.c')
-rw-r--r-- | libguile/generalized-vectors.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libguile/generalized-vectors.c b/libguile/generalized-vectors.c index b65b654fb..d8a3bf8d3 100644 --- a/libguile/generalized-vectors.c +++ b/libguile/generalized-vectors.c @@ -131,9 +131,11 @@ SCM scm_c_generalized_vector_ref (SCM v, size_t idx) { scm_t_array_handle h; + size_t pos; SCM ret; scm_generalized_vector_get_handle (v, &h); - ret = h.impl->vref (&h, idx); + pos = h.base + h.dims[0].lbnd + idx * h.dims[0].inc; + ret = h.impl->vref (&h, pos); scm_array_handle_release (&h); return ret; } @@ -152,8 +154,10 @@ void scm_c_generalized_vector_set_x (SCM v, size_t idx, SCM val) { scm_t_array_handle h; + size_t pos; scm_generalized_vector_get_handle (v, &h); - h.impl->vset (&h, idx, val); + pos = h.base + h.dims[0].lbnd + idx * h.dims[0].inc; + h.impl->vset (&h, pos, val); scm_array_handle_release (&h); } |