rename procedure creation functions
This commit is contained in:
parent
e7f765d218
commit
e3e1ba4c11
|
@ -26,7 +26,7 @@ struct pic_proc {
|
|||
|
||||
#define pic_proc_cfunc_p(o) (pic_proc_ptr(o)->cfunc_p)
|
||||
|
||||
struct pic_proc *pic_proc_new(pic_state *, struct pic_irep *, struct pic_env *);
|
||||
struct pic_proc *pic_proc_new_cfunc(pic_state *, pic_func_t);
|
||||
struct pic_proc *pic_proc_new(pic_state *, pic_func_t);
|
||||
struct pic_proc *pic_proc_new_irep(pic_state *, struct pic_irep *, struct pic_env *);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -913,7 +913,7 @@ pic_codegen(pic_state *pic, pic_value obj)
|
|||
state->irep->cv_num = 0;
|
||||
state->irep->cv_tbl = NULL;
|
||||
|
||||
proc = pic_proc_new(pic, state->irep, NULL);
|
||||
proc = pic_proc_new_irep(pic, state->irep, NULL);
|
||||
|
||||
destroy_codegen_state(pic, state);
|
||||
|
||||
|
@ -936,7 +936,7 @@ pic_defun(pic_state *pic, const char *name, pic_func_t cfunc)
|
|||
struct pic_proc *proc;
|
||||
int idx;
|
||||
|
||||
proc = pic_proc_new_cfunc(pic, cfunc);
|
||||
proc = pic_proc_new(pic, cfunc);
|
||||
idx = scope_global_define(pic, name);
|
||||
pic->globals[idx] = pic_obj_value(proc);
|
||||
|
||||
|
|
|
@ -161,7 +161,8 @@ pic_cont_callcc(pic_state *pic)
|
|||
else {
|
||||
struct pic_proc *c;
|
||||
|
||||
c = pic_proc_new_cfunc(pic, cont_call);
|
||||
c = pic_proc_new(pic, cont_call);
|
||||
|
||||
/* save the continuation object in proc */
|
||||
c->env = (struct pic_env *)pic_obj_alloc(pic, sizeof(struct pic_env), PIC_TT_ENV);
|
||||
c->env->up = NULL;
|
||||
|
|
26
src/proc.c
26
src/proc.c
|
@ -4,19 +4,7 @@
|
|||
#include "picrin/irep.h"
|
||||
|
||||
struct pic_proc *
|
||||
pic_proc_new(pic_state *pic, struct pic_irep *irep, struct pic_env *env)
|
||||
{
|
||||
struct pic_proc *proc;
|
||||
|
||||
proc = (struct pic_proc *)pic_obj_alloc(pic, sizeof(struct pic_proc), PIC_TT_PROC);
|
||||
proc->cfunc_p = false;
|
||||
proc->u.irep = irep;
|
||||
proc->env = env;
|
||||
return proc;
|
||||
}
|
||||
|
||||
struct pic_proc *
|
||||
pic_proc_new_cfunc(pic_state *pic, pic_func_t cfunc)
|
||||
pic_proc_new(pic_state *pic, pic_func_t cfunc)
|
||||
{
|
||||
struct pic_proc *proc;
|
||||
|
||||
|
@ -27,6 +15,18 @@ pic_proc_new_cfunc(pic_state *pic, pic_func_t cfunc)
|
|||
return proc;
|
||||
}
|
||||
|
||||
struct pic_proc *
|
||||
pic_proc_new_irep(pic_state *pic, struct pic_irep *irep, struct pic_env *env)
|
||||
{
|
||||
struct pic_proc *proc;
|
||||
|
||||
proc = (struct pic_proc *)pic_obj_alloc(pic, sizeof(struct pic_proc), PIC_TT_PROC);
|
||||
proc->cfunc_p = false;
|
||||
proc->u.irep = irep;
|
||||
proc->env = env;
|
||||
return proc;
|
||||
}
|
||||
|
||||
static pic_value
|
||||
pic_proc_proc_p(pic_state *pic)
|
||||
{
|
||||
|
|
2
src/vm.c
2
src/vm.c
|
@ -613,7 +613,7 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value argv)
|
|||
CASE(OP_LAMBDA) {
|
||||
struct pic_proc *proc;
|
||||
|
||||
proc = pic_proc_new(pic, pic->irep[c.u.i], pic->ci->env);
|
||||
proc = pic_proc_new_irep(pic, pic->irep[c.u.i], pic->ci->env);
|
||||
PUSH(pic_obj_value(proc));
|
||||
pic_gc_arena_restore(pic, ai);
|
||||
NEXT;
|
||||
|
|
Loading…
Reference in New Issue