if (ao_scheme_exception)
return NULL;
- ao_scheme_cons_stash(0, cons);
+ ao_scheme_cons_stash(cons);
vector = ao_scheme_vector_alloc(length, AO_SCHEME_NIL);
- cons = ao_scheme_cons_fetch(0);
+ cons = ao_scheme_cons_fetch();
if (!vector)
return NULL;
i = 0;
}
struct ao_scheme_cons *
-ao_scheme_vector_to_list(struct ao_scheme_vector *vector)
+ao_scheme_vector_to_list(struct ao_scheme_vector *vector, int start, int end)
{
- unsigned int i;
+ int i;
uint16_t length = vector->length;
struct ao_scheme_cons *cons = NULL;
- for (i = length; i-- > 0;) {
- ao_scheme_poly_stash(2, ao_scheme_vector_poly(vector));
+ if (end == -1)
+ end = length;
+ if (start < 0)
+ start = 0;
+ if (end > length)
+ end = length;
+ for (i = end; i-- > start;) {
+ ao_scheme_vector_stash(vector);
cons = ao_scheme_cons_cons(vector->vals[i], ao_scheme_cons_poly(cons));
- vector = ao_scheme_poly_vector(ao_scheme_poly_fetch(2));
+ vector = ao_scheme_vector_fetch();
if (!cons)
return NULL;
}