added buildValue

This commit is contained in:
cozis
2022-01-21 20:26:36 +01:00
parent dc5586e94c
commit 7f29b7c01a
11 changed files with 403 additions and 4 deletions
+16
View File
@@ -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;
+1
View File
@@ -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);