summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-02 04:47:39 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-02 04:47:39 +0000
commit274fa77e3f3620cbd496952f622e930ea6951f02 (patch)
tree8a8a3afc74cc716a0f638334ffe0cb965948843b
parentdc697b1905966c164ecf88a737c9c90ca95c87a8 (diff)
* math.c (domain_check): simplified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--math.c15
2 files changed, 10 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index f7c5334e80..4eef45eb8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Sep 2 13:47:30 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * math.c (domain_check): simplified.
+
Wed Sep 2 11:32:24 2009 Koichi Sasada <ko1@atdot.net>
* gc.c (obj_free): fix to free method table (fix memory leak).
diff --git a/math.c b/math.c
index 2734280b32..5ce16e805e 100644
--- a/math.c
+++ b/math.c
@@ -25,21 +25,18 @@ extern VALUE rb_to_float(VALUE val);
static void
domain_check(double x, double y, const char *msg)
{
- while(1) {
- if (errno) {
- rb_sys_fail(msg);
- }
- if (isnan(y)) {
- if (isnan(x)) break;
+ if (!isnan(y)) return;
+ else if (isnan(x)) return;
+ else {
+ if (!errno) {
#if defined(EDOM)
errno = EDOM;
-#elif defined(ERANGE)
+#else
errno = ERANGE;
#endif
- continue;
}
- break;
}
+ rb_sys_fail(msg);
}
static void