[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 02/05: Require vector as argument to vector->list
From: |
Daniel Llorens |
Subject: |
[Guile-commits] 02/05: Require vector as argument to vector->list |
Date: |
Mon, 3 Feb 2020 08:41:08 -0500 (EST) |
lloda pushed a commit to branch wip-vector-cleanup
in repository guile.
commit 49079f4be01d250a6fd64de1add737618a5cbf0a
Author: Daniel Llorens <address@hidden>
AuthorDate: Mon Feb 3 11:42:01 2020 +0100
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 e88354b..62a6428 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -276,8 +276,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"
@@ -285,19 +285,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 97b3f18..6db608c 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"
- [Guile-commits] branch wip-vector-cleanup created (now 338a1b6), Daniel Llorens, 2020/02/03
- [Guile-commits] 01/05: Require vector as argument to vector-copy, Daniel Llorens, 2020/02/03
- [Guile-commits] 03/05: Require vector argument to scm_vector_elements, scm_vector_writable_elements, Daniel Llorens, 2020/02/03
- [Guile-commits] 02/05: Require vector as argument to vector->list,
Daniel Llorens <=
- [Guile-commits] 04/05: Remove the unused argument from scm_array_p, Daniel Llorens, 2020/02/03
- [Guile-commits] 05/05: Simple vectors are just vectors, Daniel Llorens, 2020/02/03