* numeric.c (flodivmod): must through the same pass if HAVE_FMOD or not.

this is a bugfix of r35013.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2012-03-14 08:56:42 +00:00
Родитель 005953a17b
Коммит cc3d03b196
2 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Wed Mar 14 17:55:29 2012 NAKAMURA Usaku <usa@ruby-lang.org>
* numeric.c (flodivmod): must through the same pass if HAVE_FMOD or not.
this is a bugfix of r35013.
Wed Mar 14 16:41:55 2012 NAKAMURA Usaku <usa@ruby-lang.org>
* test/test_tmpdir.rb (TestTmpdir#test_world_writable): skip on Windows.

Просмотреть файл

@ -814,18 +814,18 @@ flodivmod(double x, double y, double *divp, double *modp)
double div, mod;
if (y == 0.0) rb_num_zerodiv();
#ifdef HAVE_FMOD
mod = fmod(x, y);
#else
if((x == 0.0) || (isinf(y) && !isinf(x)))
mod = x;
else {
#ifdef HAVE_FMOD
mod = fmod(x, y);
#else
double z;
modf(x/y, &z);
mod = x - z * y;
}
#endif
}
if (isinf(x) && !isinf(y) && !isnan(y))
div = x;
else