]> gitweb.factorcode.org Git - factor.git/blob - native/vector.h
8683dbf076d8b7ce64daff740190fb987674c3ec
[factor.git] / native / vector.h
1 typedef struct {
2         /* always tag_header(VECTOR_TYPE) */
3         CELL header;
4         /* untagged */
5         CELL top;
6         /* untagged */
7         ARRAY* array;
8 } VECTOR;
9
10 INLINE VECTOR* untag_vector(CELL tagged)
11 {
12         type_check(VECTOR_TYPE,tagged);
13         return (VECTOR*)UNTAG(tagged);
14 }
15
16 VECTOR* vector(FIXNUM capacity);
17
18 void primitive_vectorp(void);
19 void primitive_vector(void);
20 void primitive_vector_length(void);
21 void primitive_set_vector_length(void);
22 void primitive_vector_nth(void);
23 void vector_ensure_capacity(VECTOR* vector, int index);
24 void primitive_set_vector_nth(void);
25 void fixup_vector(VECTOR* vector);
26 void collect_vector(VECTOR* vector);