missed to add src/vector.c
This commit is contained in:
parent
de5ad2a228
commit
611b273dcd
|
@ -0,0 +1,29 @@
|
||||||
|
#include "picrin.h"
|
||||||
|
#include "picrin/pair.h"
|
||||||
|
|
||||||
|
struct pic_vector *
|
||||||
|
pic_vec_new(pic_state *pic, size_t len)
|
||||||
|
{
|
||||||
|
struct pic_vector *vec;
|
||||||
|
|
||||||
|
vec = (struct pic_vector *)pic_obj_alloc(pic, sizeof(struct pic_vector), PIC_TT_VECTOR);
|
||||||
|
vec->len = len;
|
||||||
|
vec->data = (pic_value *)pic_alloc(pic, sizeof(pic_value) * len);
|
||||||
|
return vec;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct pic_vector *
|
||||||
|
pic_vec_new_from_list(pic_state *pic, pic_value data)
|
||||||
|
{
|
||||||
|
struct pic_vector *vec;
|
||||||
|
int i, len;
|
||||||
|
|
||||||
|
len = pic_length(pic, data);
|
||||||
|
|
||||||
|
vec = pic_vec_new(pic, len);
|
||||||
|
for (i = 0; i < len; ++i) {
|
||||||
|
vec->data[i] = pic_car(pic, data);
|
||||||
|
data = pic_cdr(pic, data);
|
||||||
|
}
|
||||||
|
return vec;
|
||||||
|
}
|
Loading…
Reference in New Issue