aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--include/ruby/defines.h6
-rw-r--r--numeric.c8
3 files changed, 18 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index d8b8b67887..7b352bdee3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Wed Dec 30 19:40:00 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * include/ruby/defines.h (INFINITY): this is float.
+
+ * include/ruby/defines.h (NAN): ditto.
+
+ * numericc.c (rb_infinity): change content as float.
+
+ * numericc.c (rb_nan): ditto.
+
Wed Dec 30 17:59:14 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* gem_prelude.rb (push_all_highest_version_gems_on_load_path):
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index a81aef8416..7bb2788aaf 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -102,15 +102,17 @@ void xfree(void*);
#ifdef INFINITY
# define HAVE_INFINITY
#else
+/** @internal */
extern const unsigned char rb_infinity[];
-# define INFINITY (*(double *)rb_infinity)
+# define INFINITY (*(float *)rb_infinity)
#endif
#ifdef NAN
# define HAVE_NAN
#else
+/** @internal */
extern const unsigned char rb_nan[];
-# define NAN (*(double *)rb_nan)
+# define NAN (*(float *)rb_nan)
#endif
#ifdef __CYGWIN__
diff --git a/numeric.c b/numeric.c
index 319f7b2c48..9fdbadf832 100644
--- a/numeric.c
+++ b/numeric.c
@@ -65,16 +65,16 @@
#ifdef HAVE_INFINITY
#elif BYTE_ORDER == LITTLE_ENDIAN
-const unsigned char rb_infinity[] = "\x00\x00\x00\x00\x00\x00\xf0\x7f";
+const unsigned char rb_infinity[] = "\x00\x00\x80\x7f";
#else
-const unsigned char rb_infinity[] = "\x7f\xf0\x00\x00\x00\x00\x00\x00";
+const unsigned char rb_infinity[] = "\x7f\x80\x00\x00";
#endif
#ifdef HAVE_NAN
#elif BYTE_ORDER == LITTLE_ENDIAN
-const unsigned char rb_nan[] = "\x00\x00\x00\x00\x00\x00\xf8\x7f";
+const unsigned char rb_nan[] = "\x00\x00\xc0\x7f";
#else
-const unsigned char rb_nan[] = "\x7f\xf8\x00\x00\x00\x00\x00\x00";
+const unsigned char rb_nan[] = "\x7f\xc0\x00\x00";
#endif
extern double round(double);