summaryrefslogtreecommitdiff
path: root/complex.c
diff options
context:
space:
mode:
authormrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-22 04:54:57 +0000
committermrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-22 04:54:57 +0000
commit5a5cc211f4e1a349dcde29ad1be35c7fe264c79f (patch)
tree53688534f5b6196afc961f2ea38c59b51d35d7fd /complex.c
parent3dd924212f0aa5bd3ea3297140e35d7dc6ac5ee2 (diff)
complex.c: optimize Kernel#Complex
* complex.c (nucomp_f_complex): use nucomp_s_convert directly. * complex.c (id_convert): removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'complex.c')
-rw-r--r--complex.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/complex.c b/complex.c
index ecf5718afe..157201aef3 100644
--- a/complex.c
+++ b/complex.c
@@ -30,7 +30,7 @@ VALUE rb_cComplex;
static VALUE nucomp_abs(VALUE self);
static VALUE nucomp_arg(VALUE self);
-static ID id_abs, id_arg, id_convert,
+static ID id_abs, id_arg,
id_denominator, id_expt, id_fdiv,
id_negate, id_numerator, id_quo,
id_real_p, id_to_f, id_to_i, id_to_r,
@@ -406,6 +406,8 @@ f_complex_new2(VALUE klass, VALUE x, VALUE y)
return nucomp_s_canonicalize_internal(klass, x, y);
}
+static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);
+
/*
* call-seq:
* Complex(x[, y]) -> numeric
@@ -442,7 +444,7 @@ f_complex_new2(VALUE klass, VALUE x, VALUE y)
static VALUE
nucomp_f_complex(int argc, VALUE *argv, VALUE klass)
{
- return rb_funcallv(rb_cComplex, id_convert, argc, argv);
+ return nucomp_s_convert(argc, argv, rb_cComplex);
}
#define imp1(n) \
@@ -1426,8 +1428,6 @@ rb_complex_polar(VALUE x, VALUE y)
return f_complex_polar(rb_cComplex, x, y);
}
-static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);
-
VALUE
rb_Complex(VALUE x, VALUE y)
{
@@ -2182,7 +2182,6 @@ Init_Complex(void)
id_abs = rb_intern("abs");
id_arg = rb_intern("arg");
- id_convert = rb_intern("convert");
id_denominator = rb_intern("denominator");
id_expt = rb_intern("**");
id_fdiv = rb_intern("fdiv");