added buildValue
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "objects.h"
|
||||
|
||||
@@ -57,6 +58,21 @@ Object *Object_NewList(int capacity, Heap *heap, Error *error)
|
||||
return (Object*) obj;
|
||||
}
|
||||
|
||||
Object *Object_NewList2(int num, Object **items, Heap *heap, Error *error)
|
||||
{
|
||||
assert(num > -1);
|
||||
|
||||
ListObject *list = (ListObject*) Object_NewList(num, heap, error);
|
||||
|
||||
if(list == NULL)
|
||||
return NULL;
|
||||
|
||||
memcpy(list->vals, items, num * sizeof(Object*));
|
||||
list->count = num;
|
||||
|
||||
return (Object*) list;
|
||||
}
|
||||
|
||||
static void walk(Object *self, void (*callback)(Object **referer, void *userp), void *userp)
|
||||
{
|
||||
ListObject *list = (ListObject*) self;
|
||||
|
||||
@@ -105,6 +105,7 @@ void Object_WalkExtensions(Object *parent, void (*callback)(void **referer,
|
||||
|
||||
Object* Object_NewMap(int num, Heap *heap, Error *error);
|
||||
Object* Object_NewList(int capacity, Heap *heap, Error *error);
|
||||
Object* Object_NewList2(int num, Object **items, Heap *heap, Error *error);
|
||||
Object* Object_NewNone(Heap *heap, Error *error);
|
||||
Object* Object_NewBuffer(int size, Heap *heap, Error *error);
|
||||
Object* Object_NewClosure(Object *parent, Object *new_map, Heap *heap, Error *error);
|
||||
|
||||
Reference in New Issue
Block a user