2004-07-16 02:26:21 -04:00
|
|
|
typedef struct {
|
|
|
|
/* always tag_header(VECTOR_TYPE) */
|
|
|
|
CELL header;
|
|
|
|
/* untagged */
|
|
|
|
CELL top;
|
|
|
|
/* untagged */
|
|
|
|
ARRAY* array;
|
|
|
|
} VECTOR;
|
|
|
|
|
|
|
|
INLINE VECTOR* untag_vector(CELL tagged)
|
|
|
|
{
|
|
|
|
type_check(VECTOR_TYPE,tagged);
|
|
|
|
return (VECTOR*)UNTAG(tagged);
|
|
|
|
}
|
|
|
|
|
|
|
|
VECTOR* vector(FIXNUM capacity);
|
|
|
|
|
|
|
|
void primitive_vector(void);
|
|
|
|
void primitive_vector_length(void);
|
|
|
|
void primitive_set_vector_length(void);
|
|
|
|
void primitive_vector_nth(void);
|
2004-07-31 14:58:16 -04:00
|
|
|
void vector_ensure_capacity(VECTOR* vector, CELL index);
|
2004-07-16 02:26:21 -04:00
|
|
|
void primitive_set_vector_nth(void);
|
|
|
|
void fixup_vector(VECTOR* vector);
|
|
|
|
void collect_vector(VECTOR* vector);
|