reorganized build-ins and implement a circular queue as an example
This commit is contained in:
@@ -40,13 +40,13 @@ struct ClosureObject {
|
||||
};
|
||||
|
||||
static void walk(Object *self, void (*callback)(Object **referer, void *userp), void *userp);
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *err);
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *err);
|
||||
|
||||
static TypeObject t_closure = {
|
||||
.base = (Object) { .type = &t_type, .flags = Object_STATIC },
|
||||
.name = "closure",
|
||||
.size = sizeof(ClosureObject),
|
||||
.select = select,
|
||||
.select = select_,
|
||||
.walk = walk,
|
||||
};
|
||||
|
||||
@@ -69,7 +69,7 @@ Object *Object_NewClosure(Object *parent, Object *new_map, Heap *heap, Error *er
|
||||
return (Object*) obj;
|
||||
}
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *err)
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *err)
|
||||
{
|
||||
ClosureObject *closure = (ClosureObject*) self;
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ typedef struct {
|
||||
Object **vals;
|
||||
} ListObject;
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *err);
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *err);
|
||||
static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *err);
|
||||
static int count(Object *self);
|
||||
static void print(Object *obj, FILE *fp);
|
||||
@@ -53,7 +53,7 @@ static TypeObject t_list = {
|
||||
.size = sizeof (ListObject),
|
||||
.copy = copy,
|
||||
.hash = hash,
|
||||
.select = select,
|
||||
.select = select_,
|
||||
.insert = insert,
|
||||
.count = count,
|
||||
.print = print,
|
||||
@@ -158,7 +158,7 @@ static void walkexts(Object *self, void (*callback)(void **referer, unsigned int
|
||||
callback((void**) &list->vals, sizeof(Object) * list->capacity, userp);
|
||||
}
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
UNUSED(heap);
|
||||
ASSERT(self != NULL);
|
||||
|
||||
@@ -39,7 +39,7 @@ typedef struct {
|
||||
Object **vals;
|
||||
} MapObject;
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *err);
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *err);
|
||||
static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *err);
|
||||
static int count(Object *self);
|
||||
static void print(Object *self, FILE *fp);
|
||||
@@ -54,7 +54,7 @@ static TypeObject t_map = {
|
||||
.size = sizeof (MapObject),
|
||||
.copy = copy,
|
||||
.hash = hash,
|
||||
.select = select,
|
||||
.select = select_,
|
||||
.insert = insert,
|
||||
.count = count,
|
||||
.print = print,
|
||||
@@ -174,7 +174,7 @@ static void walkexts(Object *self, void (*callback)(void **referer, unsigned int
|
||||
callback((void**) &map->vals, sizeof(Object*) * capacity, userp);
|
||||
}
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
UNUSED(heap);
|
||||
ASSERT(self != NULL);
|
||||
|
||||
@@ -48,7 +48,7 @@ static void print(Object *obj, FILE *fp);
|
||||
static char *to_string(Object *self, int *size, Heap *heap, Error *err);
|
||||
static _Bool op_eql(Object *self, Object *other);
|
||||
static void walkexts(Object *self, void (*callback)(void **referer, unsigned int size, void *userp), void *userp);
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error);
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *error);
|
||||
|
||||
static TypeObject t_string = {
|
||||
.base = (Object) { .type = &t_type, .flags = Object_STATIC },
|
||||
@@ -59,7 +59,7 @@ static TypeObject t_string = {
|
||||
.count = count,
|
||||
.copy = copy,
|
||||
.print = print,
|
||||
.select = select,
|
||||
.select = select_,
|
||||
.to_string = to_string,
|
||||
.op_eql = op_eql,
|
||||
.walkexts = walkexts,
|
||||
@@ -89,7 +89,7 @@ static int char_index_to_offset(StringObject *str, int idx)
|
||||
return scanned_bytes;
|
||||
}
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
static Object *select_(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
ASSERT(self != NULL && self->type == &t_string);
|
||||
ASSERT(key != NULL && heap != NULL && error != NULL);
|
||||
|
||||
Reference in New Issue
Block a user