зеркало из https://github.com/github/ruby.git
Expand f_arg to use particular functions directly
This commit is contained in:
Родитель
1464f7a149
Коммит
5bd83909b9
22
complex.c
22
complex.c
|
@ -170,7 +170,27 @@ f_abs(VALUE x)
|
||||||
return rb_funcall(x, id_abs, 0);
|
return rb_funcall(x, id_abs, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
fun1(arg)
|
static VALUE numeric_arg(VALUE self);
|
||||||
|
static VALUE float_arg(VALUE self);
|
||||||
|
|
||||||
|
inline static VALUE
|
||||||
|
f_arg(VALUE x)
|
||||||
|
{
|
||||||
|
if (RB_INTEGER_TYPE_P(x)) {
|
||||||
|
return numeric_arg(x);
|
||||||
|
}
|
||||||
|
else if (RB_FLOAT_TYPE_P(x)) {
|
||||||
|
return float_arg(x);
|
||||||
|
}
|
||||||
|
else if (RB_TYPE_P(x, T_RATIONAL)) {
|
||||||
|
return numeric_arg(x);
|
||||||
|
}
|
||||||
|
else if (RB_TYPE_P(x, T_COMPLEX)) {
|
||||||
|
return rb_complex_arg(x);
|
||||||
|
}
|
||||||
|
return rb_funcall(x, id_arg, 0);
|
||||||
|
}
|
||||||
|
|
||||||
fun1(denominator)
|
fun1(denominator)
|
||||||
|
|
||||||
inline static VALUE
|
inline static VALUE
|
||||||
|
|
Загрузка…
Ссылка в новой задаче