From fa19f702f6698b7b82325a03b1b03cbcd042aa2d Mon Sep 17 00:00:00 2001 From: Daniel Llorens Date: Mon, 3 Feb 2020 11:42:01 +0100 Subject: [PATCH] Require vector as argument to vector->list * libguile/vectors.c (vector->list): As stated. Simplify. * test-suite/tests/vectors.test: Remove shared array test. --- libguile/vectors.c | 19 ++++++------------- test-suite/tests/vectors.test | 6 +----- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/libguile/vectors.c b/libguile/vectors.c index 5d2eaf9a2..fe07c6bb0 100644 --- a/libguile/vectors.c +++ b/libguile/vectors.c @@ -280,8 +280,8 @@ SCM_DEFINE (scm_vector_copy, "vector-copy", 1, 0, 0, SCM_DEFINE (scm_vector_to_list, "vector->list", 1, 0, 0, - (SCM v), - "Return a newly allocated list composed of the elements of @var{v}.\n" + (SCM vec), + "Return a newly allocated list composed of the elements of @var{vec}.\n" "\n" "@lisp\n" "(vector->list '#(dah dah didah)) @result{} (dah dah didah)\n" @@ -289,19 +289,12 @@ SCM_DEFINE (scm_vector_to_list, "vector->list", 1, 0, 0, "@end lisp") #define FUNC_NAME s_scm_vector_to_list { + SCM_VALIDATE_VECTOR(1, vec); SCM res = SCM_EOL; - const SCM *data; - scm_t_array_handle handle; - size_t i, count, len; - ssize_t inc; - - data = scm_vector_elements (v, &handle, &len, &inc); - for (i = (len - 1) * inc, count = 0; - count < len; - i -= inc, count++) + ssize_t len = SCM_I_VECTOR_LENGTH (vec); + const SCM * data = SCM_I_VECTOR_ELTS (vec); + for (ssize_t i = len-1; i >= 0; --i) res = scm_cons (data[i], res); - - scm_array_handle_release (&handle); return res; } #undef FUNC_NAME diff --git a/test-suite/tests/vectors.test b/test-suite/tests/vectors.test index 97b3f187a..6db608c8e 100644 --- a/test-suite/tests/vectors.test +++ b/test-suite/tests/vectors.test @@ -41,11 +41,7 @@ (pass-if "string-vector 2" (equal? '("abc\u0100" "def\u0101" "ghi\u0102") - (vector->list #("abc\u0100" "def\u0101" "ghi\u0102")))) - - (pass-if "shared array" - (let ((b (make-shared-array #(1) (lambda (x) '(0)) 2))) - (equal? b (list->vector (vector->list b)))))) + (vector->list #("abc\u0100" "def\u0101" "ghi\u0102"))))) (with-test-prefix "make-vector"