summaryrefslogtreecommitdiff
path: root/libguile/vectors.c
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2004-07-10 14:35:36 +0000
committerMarius Vollmer <mvo@zagadka.de>2004-07-10 14:35:36 +0000
commita55c2b680920198892329bdf78c92ecc7553eb58 (patch)
tree5dab8dec3f128c90a317b4a607d5d9382dfd8c85 /libguile/vectors.c
parent7cee5b315a702049ba869150eb3d1658d38030d0 (diff)
downloadguile-a55c2b680920198892329bdf78c92ecc7553eb58.tar.gz
* validate.h, deprecated.h (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY,
SCM_VALIDATE_BIGINT, SCM_VALIDATE_INUM_MIN, SCM_VALIDATE_INUM_MIN_COPY, SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF, SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE, SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the fixnum/bignum distinction visible. Changed all uses to scm_to_size_t or similar.
Diffstat (limited to 'libguile/vectors.c')
-rw-r--r--libguile/vectors.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/libguile/vectors.c b/libguile/vectors.c
index e95ffdcd0..6aa9def6e 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -262,19 +262,13 @@ SCM_DEFINE (scm_vector_move_left_x, "vector-move-left!", 5, 0, 0,
"@var{start1} is greater than @var{start2}.")
#define FUNC_NAME s_scm_vector_move_left_x
{
- long i;
- long j;
- long e;
+ size_t i, j, e;
SCM_VALIDATE_VECTOR (1, vec1);
- SCM_VALIDATE_INUM_COPY (2, start1, i);
- SCM_VALIDATE_INUM_COPY (3, end1, e);
SCM_VALIDATE_VECTOR (4, vec2);
- SCM_VALIDATE_INUM_COPY (5, start2, j);
- SCM_ASSERT_RANGE (2, start1, i <= SCM_VECTOR_LENGTH (vec1) && i >= 0);
- SCM_ASSERT_RANGE (5, start2, j <= SCM_VECTOR_LENGTH (vec2) && j >= 0);
- SCM_ASSERT_RANGE (3, end1, e <= SCM_VECTOR_LENGTH (vec1) && e >= 0);
- SCM_ASSERT_RANGE (5, start2, e-i+j <= SCM_VECTOR_LENGTH (vec2));
+ i = scm_to_unsigned_integer (start1, 0, SCM_VECTOR_LENGTH(vec1));
+ e = scm_to_unsigned_integer (end1, i, SCM_VECTOR_LENGTH(vec1));
+ j = scm_to_unsigned_integer (start2, 0, SCM_VECTOR_LENGTH(vec2)-(i-e));
while (i<e)
{
@@ -298,20 +292,15 @@ SCM_DEFINE (scm_vector_move_right_x, "vector-move-right!", 5, 0, 0,
"@var{start1} is less than @var{start2}.")
#define FUNC_NAME s_scm_vector_move_right_x
{
- long i;
- long j;
- long e;
+ size_t i, j, e;
SCM_VALIDATE_VECTOR (1, vec1);
- SCM_VALIDATE_INUM_COPY (2, start1, i);
- SCM_VALIDATE_INUM_COPY (3, end1, e);
SCM_VALIDATE_VECTOR (4, vec2);
- SCM_VALIDATE_INUM_COPY (5, start2, j);
- SCM_ASSERT_RANGE (2, start1, i <= SCM_VECTOR_LENGTH (vec1) && i >= 0);
- SCM_ASSERT_RANGE (5, start2, j <= SCM_VECTOR_LENGTH (vec2) && j >= 0);
- SCM_ASSERT_RANGE (3, end1, e <= SCM_VECTOR_LENGTH (vec1) && e >= 0);
- j = e - i + j;
- SCM_ASSERT_RANGE (5, start2, j <= SCM_VECTOR_LENGTH (vec2));
+ i = scm_to_unsigned_integer (start1, 0, SCM_VECTOR_LENGTH(vec1));
+ e = scm_to_unsigned_integer (end1, i, SCM_VECTOR_LENGTH(vec1));
+ j = scm_to_unsigned_integer (start2, 0, SCM_VECTOR_LENGTH(vec2)-(i-e));
+
+ j += e - i;
while (i < e)
{
j--;