diff options
author | Daniel Llorens <lloda@sarc.name> | 2020-02-03 11:42:01 +0100 |
---|---|---|
committer | Daniel Llorens <lloda@sarc.name> | 2020-04-09 16:59:39 +0200 |
commit | fa19f702f6698b7b82325a03b1b03cbcd042aa2d (patch) | |
tree | 088150a34b93cf1d5d841189d6d00652164d0722 | |
parent | 21ede682af731f6666ffe586a27f6572e00cdebb (diff) | |
download | guile-fa19f702f6698b7b82325a03b1b03cbcd042aa2d.tar.gz |
Require vector as argument to vector->list
* libguile/vectors.c (vector->list): As stated. Simplify.
* test-suite/tests/vectors.test: Remove shared array test.
-rw-r--r-- | libguile/vectors.c | 19 | ||||
-rw-r--r-- | 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" |