remove get_var_from_proc (essentially the same as pic_unwrap_var)
This commit is contained in:
parent
12e453508d
commit
fce57ec8c9
44
src/var.c
44
src/var.c
|
@ -43,27 +43,6 @@ pic_var_set_force(pic_state *pic, struct pic_var *var, pic_value value)
|
||||||
var->value = value;
|
var->value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct pic_var *
|
|
||||||
get_var_from_proc(pic_state *pic, struct pic_proc *proc)
|
|
||||||
{
|
|
||||||
pic_value v;
|
|
||||||
|
|
||||||
if (! pic_proc_func_p(proc)) {
|
|
||||||
goto typeerror;
|
|
||||||
}
|
|
||||||
if (pic_proc_cv_size(pic, proc) != 1) {
|
|
||||||
goto typeerror;
|
|
||||||
}
|
|
||||||
v = pic_proc_cv_ref(pic, proc, 0);
|
|
||||||
if (! pic_var_p(v)) {
|
|
||||||
goto typeerror;
|
|
||||||
}
|
|
||||||
return pic_var_ptr(v);
|
|
||||||
|
|
||||||
typeerror:
|
|
||||||
pic_errorf(pic, "expected parameter, but got ~s", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
var_call(pic_state *pic)
|
var_call(pic_state *pic)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +84,22 @@ pic_wrap_var(pic_state *pic, struct pic_var *var)
|
||||||
struct pic_var *
|
struct pic_var *
|
||||||
pic_unwrap_var(pic_state *pic, struct pic_proc *proc)
|
pic_unwrap_var(pic_state *pic, struct pic_proc *proc)
|
||||||
{
|
{
|
||||||
return get_var_from_proc(pic, proc);
|
pic_value v;
|
||||||
|
|
||||||
|
if (! pic_proc_func_p(proc)) {
|
||||||
|
goto typeerror;
|
||||||
|
}
|
||||||
|
if (pic_proc_cv_size(pic, proc) != 1) {
|
||||||
|
goto typeerror;
|
||||||
|
}
|
||||||
|
v = pic_proc_cv_ref(pic, proc, 0);
|
||||||
|
if (! pic_var_p(v)) {
|
||||||
|
goto typeerror;
|
||||||
|
}
|
||||||
|
return pic_var_ptr(v);
|
||||||
|
|
||||||
|
typeerror:
|
||||||
|
pic_errorf(pic, "expected parameter, but got ~s", v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
|
@ -129,7 +123,7 @@ pic_var_parameter_ref(pic_state *pic)
|
||||||
|
|
||||||
pic_get_args(pic, "l", &proc);
|
pic_get_args(pic, "l", &proc);
|
||||||
|
|
||||||
var = get_var_from_proc(pic, proc);
|
var = pic_unwrap_var(pic, proc);
|
||||||
return pic_var_ref(pic, var);
|
return pic_var_ref(pic, var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +136,7 @@ pic_var_parameter_set(pic_state *pic)
|
||||||
|
|
||||||
pic_get_args(pic, "lo", &proc, &v);
|
pic_get_args(pic, "lo", &proc, &v);
|
||||||
|
|
||||||
var = get_var_from_proc(pic, proc);
|
var = pic_unwrap_var(pic, proc);
|
||||||
/* no convert */
|
/* no convert */
|
||||||
pic_var_set_force(pic, var, v);
|
pic_var_set_force(pic, var, v);
|
||||||
return pic_none_value();
|
return pic_none_value();
|
||||||
|
@ -156,7 +150,7 @@ pic_var_parameter_converter(pic_state *pic)
|
||||||
|
|
||||||
pic_get_args(pic, "l", &proc);
|
pic_get_args(pic, "l", &proc);
|
||||||
|
|
||||||
var = get_var_from_proc(pic, proc);
|
var = pic_unwrap_var(pic, proc);
|
||||||
if (var->conv) {
|
if (var->conv) {
|
||||||
return pic_obj_value(var->conv);
|
return pic_obj_value(var->conv);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue