diff --git a/include/picrin.h b/include/picrin.h index 97108842..047dea57 100644 --- a/include/picrin.h +++ b/include/picrin.h @@ -6,6 +6,10 @@ typedef struct { } pic_state; +void *pic_alloc(pic_state *, size_t); +struct pic_object *pic_gc_alloc(pic_state *, size_t, enum pic_tt); +void pic_free(pic_state *, void *); + pic_state *pic_open(); void pic_close(pic_state *); diff --git a/src/gc.c b/src/gc.c new file mode 100644 index 00000000..a1dac877 --- /dev/null +++ b/src/gc.c @@ -0,0 +1,27 @@ +#include + +#include "picrin.h" + +void * +pic_alloc(pic_state *pic, size_t size) +{ + /* mock */ + return malloc(size); +} + +struct pic_object * +pic_gc_alloc(pic_state *pic, size_t size, enum pic_tt tt) +{ + struct pic_object *obj; + + obj = (struct pic_object *)malloc(size); + obj->tt = tt; + + return obj; +} + +void +pic_free(pic_state *pic, void *ptr) +{ + free(ptr); +}