add pic_alloca
This commit is contained in:
parent
5946c3ab39
commit
549d939ce6
|
@ -696,6 +696,15 @@ pic_gc(pic_state *pic)
|
||||||
gc_sweep_phase(pic);
|
gc_sweep_phase(pic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *
|
||||||
|
pic_alloca(pic_state *pic, size_t n)
|
||||||
|
{
|
||||||
|
static const pic_data_type t = { "pic_alloca", pic_free, 0 };
|
||||||
|
|
||||||
|
/* TODO: optimize */
|
||||||
|
return pic_data_alloc(pic, &t, pic_malloc(pic, n))->data;
|
||||||
|
}
|
||||||
|
|
||||||
struct pic_object *
|
struct pic_object *
|
||||||
pic_obj_alloc_unsafe(pic_state *pic, size_t size, enum pic_tt tt)
|
pic_obj_alloc_unsafe(pic_state *pic, size_t size, enum pic_tt tt)
|
||||||
{
|
{
|
||||||
|
|
|
@ -137,6 +137,7 @@ void pic_free(pic_state *, void *);
|
||||||
|
|
||||||
typedef pic_value (*pic_func_t)(pic_state *);
|
typedef pic_value (*pic_func_t)(pic_state *);
|
||||||
|
|
||||||
|
void *pic_alloca(pic_state *, size_t);
|
||||||
pic_value pic_gc_protect(pic_state *, pic_value);
|
pic_value pic_gc_protect(pic_state *, pic_value);
|
||||||
size_t pic_gc_arena_preserve(pic_state *);
|
size_t pic_gc_arena_preserve(pic_state *);
|
||||||
void pic_gc_arena_restore(pic_state *, size_t);
|
void pic_gc_arena_restore(pic_state *, size_t);
|
||||||
|
|
Loading…
Reference in New Issue