From: matz@... (Yukihiro Matsumoto) Date: 1998-03-25T13:05:07+09:00 Subject: [ruby-dev:1918] Re: [Bug] Float#divmod, Float#% まつもと ゆきひろです In message "[ruby-dev:1913] [Bug] Float#divmod, Float#%" on 98/03/24, Keiju ISHITSUKA writes: |けいじゅ@日本ラショナルソフトウェアです. | |バグを発見しました. |irb0> 0.1.divmod(10) |/home/keiju/var/bin/irb:423: [BUG] Segmentation fault すいません.パッチです. diff -u -1 -r1.1.1.2.2.9 numeric.c --- numeric.c 1998/03/17 10:06:57 1.1.1.2.2.9 +++ numeric.c 1998/03/25 04:04:27 @@ -281,3 +281,3 @@ { - double value; + double value, result; @@ -298,3 +298,3 @@ #ifdef HAVE_FMOD - value = fmod(RFLOAT(x)->value, value); + result = fmod(RFLOAT(x)->value, value); #else @@ -305,3 +305,3 @@ modf(value1/value, &value2); - value = value1 - value2 * value; + result = value1 - value2 * value; } @@ -309,7 +309,6 @@ if (modulo && - (RFLOAT(x)->value < 0.0) != (RFLOAT(y)->value < 0.0) && - value != 0.0) { - value += RFLOAT(y)->value; + (RFLOAT(x)->value < 0.0) != (result < 0.0) && result != 0.0) { + result += value; } - return float_new(value); + return float_new(result); }