summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/vectors.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/libguile/vectors.c b/libguile/vectors.c
index 079e056f2..4c1b490dc 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -128,13 +128,14 @@ scm_vector_p(x)
return SCM_VECTORP(x) ? SCM_BOOL_T : SCM_BOOL_F;
}
-SCM_PROC(s_vector_length, "vector-length", 1, 0, 0, scm_vector_length);
+SCM_GPROC(s_vector_length, "vector-length", 1, 0, 0, scm_vector_length, g_vector_length);
SCM
scm_vector_length(v)
SCM v;
{
- SCM_ASSERT(SCM_NIMP(v) && SCM_VECTORP(v), v, SCM_ARG1, s_vector_length);
+ SCM_GASSERT1(SCM_NIMP(v) && SCM_VECTORP(v),
+ g_vector_length, v, SCM_ARG1, s_vector_length);
return SCM_MAKINUM(SCM_LENGTH(v));
}
@@ -156,19 +157,21 @@ scm_vector(l)
return res;
}
-SCM_PROC(s_vector_ref, "vector-ref", 2, 0, 0, scm_vector_ref);
+SCM_GPROC(s_vector_ref, "vector-ref", 2, 0, 0, scm_vector_ref, g_vector_ref);
SCM
scm_vector_ref (SCM v, SCM k)
{
- SCM_ASSERT (SCM_NIMP (v) && SCM_VECTORP (v), v, SCM_ARG1, s_vector_ref);
- SCM_ASSERT (SCM_INUMP (k), k, SCM_ARG2, s_vector_ref);
+ SCM_GASSERT2 (SCM_NIMP (v) && SCM_VECTORP (v),
+ g_vector_ref, v, k, SCM_ARG1, s_vector_ref);
+ SCM_GASSERT2 (SCM_INUMP (k),
+ g_vector_ref, v, k, SCM_ARG2, s_vector_ref);
SCM_ASSERT (SCM_INUM (k) < SCM_LENGTH (v) && SCM_INUM (k) >= 0,
k, SCM_OUTOFRANGE, s_vector_ref);
return SCM_VELTS (v)[(long) SCM_INUM (k)];
}
-SCM_PROC(s_vector_set_x, "vector-set!", 3, 0, 0, scm_vector_set_x);
+SCM_GPROC(s_vector_set_x, "vector-set!", 3, 0, 0, scm_vector_set_x, g_vector_set_x);
SCM
scm_vector_set_x(v, k, obj)
@@ -176,9 +179,14 @@ scm_vector_set_x(v, k, obj)
SCM k;
SCM obj;
{
- SCM_ASSERT(SCM_NIMP(v) && SCM_VECTORP(v), v, SCM_ARG1, s_vector_set_x);
- SCM_ASSERT(SCM_INUMP(k), k, SCM_ARG2, s_vector_set_x);
- SCM_ASSERT((SCM_INUM(k) < SCM_LENGTH(v)) && (SCM_INUM(k) >= 0), k, SCM_OUTOFRANGE, s_vector_set_x);
+ SCM_GASSERTn (SCM_NIMP(v) && SCM_VECTORP(v),
+ g_vector_set_x, SCM_LIST3 (v, k, obj),
+ SCM_ARG1, s_vector_set_x);
+ SCM_GASSERTn (SCM_INUMP(k),
+ g_vector_set_x, SCM_LIST3 (v, k, obj),
+ SCM_ARG2, s_vector_set_x);
+ SCM_ASSERT ((SCM_INUM(k) < SCM_LENGTH(v)) && (SCM_INUM(k) >= 0),
+ k, SCM_OUTOFRANGE, s_vector_set_x);
SCM_VELTS(v)[((long) SCM_INUM(k))] = obj;
return obj;
}