guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 27/27: Reuse SCM_ASSERT_RANGE in scm_c_vector_ref, scm_c


From: Daniel Llorens
Subject: [Guile-commits] 27/27: Reuse SCM_ASSERT_RANGE in scm_c_vector_ref, scm_c_vector_set_x
Date: Fri, 21 Feb 2020 03:57:07 -0500 (EST)

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

commit fb71aafe0524fa20e37570221d15d0ed430b808b
Author: Daniel Llorens <address@hidden>
AuthorDate: Thu Feb 13 13:05:09 2020 +0100

    Reuse SCM_ASSERT_RANGE in scm_c_vector_ref, scm_c_vector_set_x
---
 libguile/vectors.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/libguile/vectors.c b/libguile/vectors.c
index 8047729..b0e8ee2 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -162,10 +162,7 @@ scm_c_vector_ref (SCM v, size_t k)
 #define FUNC_NAME s_scm_vector_ref
 {
   SCM_VALIDATE_VECTOR (1, v);
-
-  if (k >= SCM_I_VECTOR_LENGTH (v))
-    scm_out_of_range (NULL, scm_from_size_t (k));
-
+  SCM_ASSERT_RANGE (2, scm_from_size_t (k), k < SCM_I_VECTOR_LENGTH (v));
   return SCM_VECTOR_REF (v, k);
 }
 #undef FUNC_NAME
@@ -193,10 +190,7 @@ scm_c_vector_set_x (SCM v, size_t k, SCM obj)
 #define FUNC_NAME s_scm_vector_set_x
 {
   SCM_VALIDATE_MUTABLE_VECTOR (1, v);
-
-  if (k >= SCM_I_VECTOR_LENGTH (v))
-    scm_out_of_range (NULL, scm_from_size_t (k)); 
-
+  SCM_ASSERT_RANGE (2, scm_from_size_t (k), k < SCM_I_VECTOR_LENGTH (v));
   SCM_VECTOR_SET (v, k, obj);
 }
 #undef FUNC_NAME
@@ -223,14 +217,10 @@ SCM
 scm_c_make_vector (size_t k, SCM fill)
 #define FUNC_NAME s_scm_make_vector
 {
-  SCM vector;
-  size_t j;
-
   SCM_ASSERT_RANGE (1, scm_from_size_t (k), k <= VECTOR_MAX_LENGTH);
+  SCM vector = scm_words ((k << 8) | scm_tc7_vector, k + 1);
 
-  vector = scm_words ((k << 8) | scm_tc7_vector, k + 1);
-
-  for (j = 0; j < k; ++j)
+  for (size_t j = 0; j < k; ++j)
     SCM_VECTOR_SET (vector, j, fill);
 
   return vector;



reply via email to

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