guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 26/27: Simplify vector constructor


From: Daniel Llorens
Subject: [Guile-commits] 26/27: Simplify vector constructor
Date: Mon, 16 Mar 2020 04:52:29 -0400 (EDT)

lloda pushed a commit to branch wip-vector-cleanup
in repository guile.

commit 762fb73cde123359e9b027948b937f575aa578a4
Author: Daniel Llorens <address@hidden>
AuthorDate: Thu Feb 13 12:26:19 2020 +0100

    Simplify vector constructor
    
    * libguile/vectors.c: Remove redundant list check.
---
 libguile/vectors.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/libguile/vectors.c b/libguile/vectors.c
index 16823d3..8047729 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -122,20 +122,16 @@ SCM_DEFINE (scm_vector, "vector", 0, 0, 1,
            "@end lisp")
 #define FUNC_NAME s_scm_vector
 {
-  SCM res;
-  SCM *data;
-  long i, len;
-
+  long len;
   SCM_VALIDATE_LIST_COPYLEN (1, l, len);
+  
+  SCM res = scm_c_make_vector (len, SCM_UNSPECIFIED);
+  SCM *data = SCM_I_VECTOR_WELTS (res);
 
-  res = scm_c_make_vector (len, SCM_UNSPECIFIED);
-  data = SCM_I_VECTOR_WELTS (res);
-  i = 0;
-  while (scm_is_pair (l) && i < len) 
+  for (long i=0; i < len; ++i)
     {
       data[i] = SCM_CAR (l);
       l = SCM_CDR (l);
-      i += 1;
     }
 
   return res;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]