diff options
Diffstat (limited to 'libguile/generalized-vectors.c')
-rw-r--r-- | libguile/generalized-vectors.c | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/libguile/generalized-vectors.c b/libguile/generalized-vectors.c index 5e3e5526a..fc493bc80 100644 --- a/libguile/generalized-vectors.c +++ b/libguile/generalized-vectors.c @@ -1,5 +1,5 @@ /* Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, - * 2005, 2006, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + * 2005, 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -101,36 +101,19 @@ scm_generalized_vector_get_handle (SCM vec, scm_t_array_handle *h) size_t scm_c_generalized_vector_length (SCM v) { - scm_t_array_handle h; - size_t ret; - scm_generalized_vector_get_handle (v, &h); - ret = h.dims[0].ubnd - h.dims[0].lbnd + 1; - scm_array_handle_release (&h); - return ret; + return scm_c_array_length (v); } SCM -scm_c_generalized_vector_ref (SCM v, size_t idx) +scm_c_generalized_vector_ref (SCM v, ssize_t idx) { - scm_t_array_handle h; - size_t pos; - SCM ret; - scm_generalized_vector_get_handle (v, &h); - 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; + return scm_c_array_ref_1 (v, idx); } void -scm_c_generalized_vector_set_x (SCM v, size_t idx, SCM val) +scm_c_generalized_vector_set_x (SCM v, ssize_t idx, SCM val) { - scm_t_array_handle h; - size_t pos; - scm_generalized_vector_get_handle (v, &h); - pos = h.base + h.dims[0].lbnd + idx * h.dims[0].inc; - h.impl->vset (&h, pos, val); - scm_array_handle_release (&h); + scm_c_array_set_1_x (v, val, idx); } void |