diff --git a/include/picrin.h b/include/picrin.h index 5aa7454f..e9d8ab8b 100644 --- a/include/picrin.h +++ b/include/picrin.h @@ -157,7 +157,6 @@ pic_list pic_parse_cstr(pic_state *, const char *); pic_value pic_load(pic_state *, const char *); pic_value pic_apply(pic_state *, struct pic_proc *, pic_value); -pic_value pic_apply_argv(pic_state *, struct pic_proc *, size_t, ...); pic_value pic_apply0(pic_state *, struct pic_proc *); pic_value pic_apply1(pic_state *, struct pic_proc *, pic_value); pic_value pic_apply2(pic_state *, struct pic_proc *, pic_value, pic_value); diff --git a/include/picrin/cont.h b/include/picrin/cont.h index 15ea1c3f..0367bb14 100644 --- a/include/picrin/cont.h +++ b/include/picrin/cont.h @@ -53,7 +53,7 @@ struct pic_cont { pic_block *_a; \ while (pic->blk) { \ if (pic->blk->out) \ - pic_apply_argv(pic, pic->blk->out, 0); \ + pic_apply0(pic, pic->blk->out); \ _a = pic->blk->prev; \ PIC_BLK_DECREF(pic, pic->blk); \ pic->blk = _a; \ diff --git a/src/cont.c b/src/cont.c index 9d0379d9..9ee93c60 100644 --- a/src/cont.c +++ b/src/cont.c @@ -179,10 +179,10 @@ walk_to_block(pic_state *pic, pic_block *here, pic_block *there) if (here->depth < there->depth) { walk_to_block(pic, here, there->prev); - pic_apply_argv(pic, there->in, 0); + pic_apply0(pic, there->in); } else { - pic_apply_argv(pic, there->out, 0); + pic_apply0(pic, there->out); walk_to_block(pic, here->prev, there); } } @@ -225,7 +225,7 @@ pic_callcc(pic_state *pic, struct pic_proc *proc) pic_proc_cv_init(pic, c, 1); pic_proc_cv_set(pic, c, 0, pic_obj_value(cont)); - return pic_apply_argv(pic, proc, 1, pic_obj_value(c)); + return pic_apply1(pic, proc, pic_obj_value(c)); } } @@ -270,7 +270,7 @@ pic_cont_dynamic_wind(pic_state *pic) pic_get_args(pic, "lll", &in, &thunk, &out); /* enter */ - pic_apply_argv(pic, in, 0); + pic_apply0(pic, in); { pic_block *here; @@ -283,13 +283,13 @@ pic_cont_dynamic_wind(pic_state *pic) pic->blk->refcnt = 1; PIC_BLK_INCREF(pic, here); - v = pic_apply_argv(pic, thunk, 0); + v = pic_apply0(pic, thunk); PIC_BLK_DECREF(pic, pic->blk); pic->blk = here; } /* exit */ - pic_apply_argv(pic, out, 0); + pic_apply0(pic, out); return v; } diff --git a/src/error.c b/src/error.c index 75b815f1..fdc8e623 100644 --- a/src/error.c +++ b/src/error.c @@ -109,13 +109,13 @@ pic_error_with_exception_handler(pic_state *pic) pic_get_args(pic, "ll", &handler, &thunk); pic_try { - v = pic_apply_argv(pic, thunk, 0); + v = pic_apply0(pic, thunk); } pic_catch { struct pic_error *e = pic->err; pic->err = NULL; - v = pic_apply_argv(pic, handler, 1, pic_obj_value(e)); + v = pic_apply1(pic, handler, pic_obj_value(e)); pic_errorf(pic, "error handler returned ~s, by error ~s", v, pic_obj_value(e)); } return v; diff --git a/src/macro.c b/src/macro.c index 224a0ee7..7703d5ee 100644 --- a/src/macro.c +++ b/src/macro.c @@ -774,7 +774,7 @@ er_macro_call(pic_state *pic) cb = pic_proc_ptr(pic_proc_cv_ref(pic, pic_get_proc(pic), 0)); - return pic_apply_argv(pic, cb, 3, expr, pic_obj_value(rename), pic_obj_value(compare)); + return pic_apply3(pic, cb, expr, pic_obj_value(rename), pic_obj_value(compare)); } static pic_value @@ -898,7 +898,7 @@ ir_macro_call(pic_state *pic) cb = pic_proc_ptr(pic_proc_cv_ref(pic, pic_get_proc(pic), 0)); expr = ir_macro_wrap(pic, expr, pic_senv_ptr(use_env), &assoc); - expr = pic_apply_argv(pic, cb, 3, expr, pic_obj_value(inject), pic_obj_value(compare)); + expr = pic_apply3(pic, cb, expr, pic_obj_value(inject), pic_obj_value(compare)); expr = ir_macro_unwrap(pic, expr, pic_senv_ptr(mac_env), &assoc); return expr; } diff --git a/src/var.c b/src/var.c index f9aad077..6aa4e18a 100644 --- a/src/var.c +++ b/src/var.c @@ -31,7 +31,7 @@ void pic_var_set(pic_state *pic, struct pic_var *var, pic_value value) { if (var->conv) { - value = pic_apply_argv(pic, var->conv, 1, value); + value = pic_apply1(pic, var->conv, value); } pic_var_set_force(pic, var, value); } diff --git a/src/vm.c b/src/vm.c index d85a7f58..b94c8139 100644 --- a/src/vm.c +++ b/src/vm.c @@ -484,24 +484,6 @@ pic_apply5(pic_state *pic, struct pic_proc *proc, pic_value arg1, pic_value arg2 return pic_apply(pic, proc, pic_list5(pic, arg1, arg2, arg3, arg4, arg5)); } -pic_value -pic_apply_argv(pic_state *pic, struct pic_proc *proc, size_t argc, ...) -{ - va_list ap; - pic_value v; - - va_start(ap, argc); - - v = pic_nil_value(); - while (argc--) { - v = pic_cons(pic, va_arg(ap, pic_value), v); - } - v = pic_reverse(pic, v); - - va_end(ap); - return pic_apply(pic, proc, v); -} - #if VM_DEBUG # define OPCODE_EXEC_HOOK pic_dump_code(c) #else