summaryrefslogtreecommitdiff
path: root/libguile/generalized-vectors.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/generalized-vectors.c')
-rw-r--r--libguile/generalized-vectors.c29
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