mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
numeric.c: avoid division by zero
same as r65642. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ed42b0102d
commit
a6e887153e
1 changed files with 6 additions and 3 deletions
|
@ -929,8 +929,11 @@ nurat_div(VALUE self, VALUE other)
|
|||
other, ONE, '/');
|
||||
}
|
||||
}
|
||||
else if (RB_FLOAT_TYPE_P(other))
|
||||
return DBL2NUM(nurat_to_double(self) / RFLOAT_VALUE(other));
|
||||
else if (RB_FLOAT_TYPE_P(other)) {
|
||||
double d = nurat_to_double(self);
|
||||
VALUE v = rb_float_new(d);
|
||||
return rb_flo_div_flo(v, other);
|
||||
}
|
||||
else if (RB_TYPE_P(other, T_RATIONAL)) {
|
||||
if (f_zero_p(other))
|
||||
rb_num_zerodiv();
|
||||
|
@ -968,7 +971,7 @@ nurat_fdiv(VALUE self, VALUE other)
|
|||
{
|
||||
VALUE div;
|
||||
if (f_zero_p(other))
|
||||
return DBL2NUM(nurat_to_double(self) / 0.0);
|
||||
return nurat_div(self, rb_float_new(0.0));
|
||||
if (FIXNUM_P(other) && other == LONG2FIX(1))
|
||||
return nurat_to_f(self);
|
||||
div = nurat_div(self, other);
|
||||
|
|
Loading…
Reference in a new issue