Fix assertion failed in Complex.polar without NDEBUG (#3551)
Fixes [Bug #17172].
This commit is contained in:
parent
10290da54d
commit
68b5f14d53
Notes:
git
2020-09-16 19:27:40 +09:00
Merged-By: mrkn <mrkn@ruby-lang.org>
@ -732,6 +732,14 @@ nucomp_s_polar(int argc, VALUE *argv, VALUE klass)
|
||||
nucomp_real_check(arg);
|
||||
break;
|
||||
}
|
||||
if (RB_TYPE_P(abs, T_COMPLEX)) {
|
||||
get_dat1(abs);
|
||||
abs = dat->real;
|
||||
}
|
||||
if (RB_TYPE_P(arg, T_COMPLEX)) {
|
||||
get_dat1(arg);
|
||||
arg = dat->real;
|
||||
}
|
||||
return f_complex_polar(klass, abs, arg);
|
||||
}
|
||||
|
||||
|
@ -220,6 +220,11 @@ class Complex_Test < Test::Unit::TestCase
|
||||
def test_polar
|
||||
assert_equal([1,2], Complex.polar(1,2).polar)
|
||||
assert_equal(Complex.polar(1.0, Math::PI * 2 / 3), Complex.polar(1, Math::PI * 2 / 3))
|
||||
|
||||
assert_in_out_err([], <<-'end;', ['OK'], [])
|
||||
Complex.polar(1, Complex(1, 0))
|
||||
puts :OK
|
||||
end;
|
||||
end
|
||||
|
||||
def test_uplus
|
||||
|
Loading…
x
Reference in New Issue
Block a user